导航:首页 > 编程语言 > php数组重复次数

php数组重复次数

发布时间:2024-10-21 09:16:21

⑴ thinkphp <volist>标签 循环输出表格 怎么动态设定循环次数呢

在使用ThinkPHP的volist标签时,单重循环是比较常用的,但有时候需要用到多重嵌套循环。

方法步骤:

Action代码:
publicfunctionindex(){
$prod=I("get.prod_en");
$id=I("get.id",0,"int");
if($prod==""){
$serviceProct=array();//多重循环遍历的数组
//数据保存在两张表中,这里通过循环初始化$serviceProct数组
$service=M("proct_class")->order("oidASC")->select();
for($i=0;$i<count($service);$i++)
{
array_push($serviceProct,array("srvName"=>$service[$i]["pc_cn"],"proct"=>M("proct")->where("prod_class_id=".$service[$i]["pcid"])->order("oidASC")->select()));
}
//如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋
值,无论何种变量类型都统一使用assign赋值。
$this->assign("serviceProct",$serviceProct);
$this->display();
}else{
if($id>0){
$this->display("detail");
}else{
$this->assign('prod_en',$prod);
$clsList=M("question_class")->order("oidASC")->select();
$this->assign('clsList',$clsList);
$qusList=M("question")->order("oidASC")->select();
$this->assign('qusList',$qusList);
$this->display("list");
}
}

模板代码:

<volistname="serviceProct"id="sp"key="i">
<dlclass="dlistodd">
<dt>{$sp.srvName}</dt>
<volistname="sp.proct"id="pd"key="j">
<dd><ahref="/index.php/question?prod_en={$pd.prod_en}">{$pd.prod_cn}</a></dd>
<ifcondition="$jltcount($sp['proct'])">
<dd>|</dd>
</if>
</volist>
<ifcondition="count($sp['proct'])EQ0">
<dd>&nbsp;</dd>
</if>
</dl>
</volist>

当使用多重嵌套循环时,需要为每一个volist指定key值,通过

<if condition="$j lt count($sp['proct'])">

判断是否为数组中的最后一个元素。

⑵ php中foreach怎么控制循环次数

foreach的对象是一个数组,默认是循环出数组中的所有数据就结束。
如果你只想取出数组中的前几个(控制循环次数),可以加一个变量控制次数;
$i = 0;
$maxnum = 10;
foreach($array as $v) {
echo $v;
if($++ > $maxnum) {
break();
}
}

⑶ 用php写出代码:3,6,7,1,8,2,9,4,5,0按照从小到大的顺序输出数组的值。

这个问题,可以采用经典的冒泡排序。冒泡排序的过程如下:

1.比较相邻的元素。如果第一个比第二个大,就交换顺序。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。最后的元素会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

这个过程在转化成代码方式的思路为:

  1. 每次从最开始的一对相邻元素比较,到结尾的一对元素比较完毕,可以看做一个完整的步骤,代码表示如下:

for ($j = 0;$j < count($arr)-1;$j++)// 每一次循环表示一次比较和交换的过程。

{

if ($arr[$j]>$arr[$j+1])

{

$tmp = $arr[$j];

$arr[$j] = $arr[$j+1];

$arr[$j+1] = $tmp;

}

}

2.每次重新开始上一步骤都要比上一步少比较最后一个元素(因为上一步最后一个元素已经最大),这时需要增加一个外层循环来控制每次比较元素的个数。代码如下:

for($i = 0;$i < count($arr);$i++)// 每一次外层循环表示从头到尾执行了一次两两互相比较和交换。

{

for ($j = 0;$j < count($arr)-$i-1;$j ++)// 每一次内层循环表示一次比较和交换的过程。

{

if ($arr[$j]>$arr[$j+1])

{

$tmp = $arr[$j];

$arr[$j] = $arr[$j+1];

$arr[$j+1] = $tmp;

}

}

}

完成过程代码如下:

⑷ php取出多维数组重复的值

$arr = array(
array(
array(
"stocknotifyId" => 1,
"sku" => '13809_BL_37',
"email" => '[email protected]'
),
array(
"stocknotifyId" => 3,
"sku" => '13809_BL_37',
"email" => '[email protected]'
),
array(
"stocknotifyId" => 5,
"sku" => '13809_BL_37',
"email" => '[email protected]'
)
),
array(
array(
"stocknotifyId" => 2,
"sku" => '13809_B_39',
"email" => '[email protected]'
)
),
array(
array(
"stocknotifyId" => 4,
"sku" => '13809_BL_39',
"email" =>'[email protected]'
)
)
);

$re = array();

foreach($arr as $a) {
foreach ($a as $v) {
$tmp_v = $v;
unset($tmp_v['email']);
if(isset($re[$v['email']])) {
$re[$v['email']][] = $tmp_v;
}else{
$re[$v['email']] = array($tmp_v);
}

}
}

print_r($re);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

<!-- output -->
Array
(
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 1
[sku] => 13809_BL_37
)
[1] => Array
(
[stocknotifyId] => 2
[sku] => 13809_B_39
)
)
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 3
[sku] => 13809_BL_37
)
[1] => Array
(
[stocknotifyId] => 4
[sku] => 13809_BL_39
)
)
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 5
[sku] => 13809_BL_37
)
)
)

⑸ php如何统计一个数组中相同元素的个数

简单的循环即可,选出重复(出现次数大于等于2)的元素并统计每个重复元素出现的次数:

php中的 array_count_values() 函数可以实现

array_count_values() 函数用于统计数组中所有值出现的次数。

本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

array_count_values(array)

例如:

<?php

$a=array("Cat","Dog","Horse","Dog");

print_r(array_count_values($a));

?>

输出:

Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )

(5)php数组重复次数扩展阅读:

php统计数组元素个数

count():对数组中的元素个数进行统计;

sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数,得到一个常规标量变量中的元素个数。

如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;

array_count_value():统计每个特定的值在数组$array中出现过的次数;

如:

$array=array(4,5,1,2,3,1,2,1);

$ac=array_count_value($array);

将创建一个名为$ac数组,该数组包括:

关键字 值

4 1

5 1

1 3

2 2

3 1

阅读全文

与php数组重复次数相关的资料

热点内容
sql删除记录的命令 浏览:147
什么app可以智能图片分类 浏览:435
androidshiro 浏览:763
pdf书籍去哪里下载 浏览:370
php实现扩展的机制 浏览:133
名校贷app长什么样 浏览:637
adbreboot命令重启教程 浏览:911
华为什么app 浏览:249
关于减肥的app哪个好 浏览:347
linux怎么关闭python 浏览:397
oracle命令窗口执行sql文件 浏览:30
颜文字js加密源码 浏览:978
python导出xls 浏览:950
php程序的工作流程 浏览:342
手机中的文件夹删除怎么恢复 浏览:800
电影资源网站源码 浏览:555
垃圾压缩车配件库 浏览:945
csgo如何录制demo到指定文件夹 浏览:158
微信里的反编译 浏览:445
php身份证号正则 浏览:296