如何将此循环限制为特定数字?

时间:2011-01-30 19:53:26

标签: php loops

下面的

来自循环的一部分

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

这个输出数据依赖于数组。我想要的是我想要将此循环运行到特定次数。说8次。

7 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

如果你的意思是“对一个数字”,你的意思是“8次”吗?你可以做到

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

答案 2 :(得分:0)

这适用于数字&关联数组

$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;
}

答案 3 :(得分:0)

您可以使用for循环为您执行此操作

答案 4 :(得分:0)

尝试一下while循环

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

答案 5 :(得分:0)

您还可以使用其他类型的循环,例如while

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

参考:reseteachlist

<强>解释

each返回内部数组指针指向的项的键和值作为数组,并使内部指针前进。 list将键和值数组分配给两个变量并返回数组。 $i--递减计数器变量 如果数组中没有元素,则循环将停止(因此list隐式返回的数组将为空并且评估为false)或$i0 }。

答案 6 :(得分:0)

如果要截断数组的大小,可以使用array_slice

所以你的代码看起来像这样:

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