導航:首頁 > 編程語言 > 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