簡體   English   中英

如何將此循環限制為特定數字?

[英]how do I restrict this loop to a particular number?

下面是循環的一部分

foreach($dataSet as $cType => $cPercentage){ echo $cType ."=". $cPercentage; }

這個輸出數據依賴於數組。 我想要的是我想要將此循環運行到特定次數。 說8次。

$nLoop = 0;
foreach($dataSet as $cType => $cPercentage){
  if ($nLoop++ == 8)
    break;
  echo $cType ."=". $cPercentage;
}

如果你的意思是“對一個數字”,你的意思是“8次”嗎? 你可以做到的

 $i=0;   
foreach($dataSet as $cType => $cPercentage){
    if($i==8){break;} 
    $i++;
    echo $cType ."=". $cPercentage; 
}

這適用於數字和關聯數組

$count = 0;
foreach($dataSet as $cType => $cPercentage) {
    echo $cType ."=". $cPercentage;
    if (++$count > 8) break;
}

可能,但不是真正的優勢

$cappedArray = array_slice($dataSet, 0, 8, true);
foreach($cappedArray as $cType => $cPercentage) {
    echo $cType ."=". $cPercentage;
}

您可以使用for循環為您執行此操作

嘗試一下while循環

$i = 0;
while($ds = each($dataSet) && $i < 8) {
   echo $ds['key']. '='.$ds['value'];
   $i++;
}

您也可以使用其他類型的循環,例如, while

reset($dataSet);
$i = 8;
while((list($cType, $cPercentage) = each($dataSet)) && $i--) {
    echo $cType, ."=". $cPercentage;
}
reset($dataSet);

參考: reseteachlist

說明:

each返回內部數組指針指向的項的鍵和值作為數組並前進內部指針。 list將鍵和值數組分配給兩個變量並返回數組。 $i--遞減計數器變量。
如果數組中沒有元素,則循環將停止(因此list隱式返回的數組將為空並且計算為false )或者$i0

如果要截斷數組的大小,可以使用array_slice

所以你的代碼看起來像這樣:

foreach(array_slice($dataSet, 0, 8) as $cType => $cPercentage){ echo $cType ."=". $cPercentage; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM