我有一些foreach循环,因为有一个多维数组/JSON对象。我尝试打印最后一个foreach循环的第n个元素(在本例中是第5个元素)。我尝试使用模数,但没有成功。
foreach($data['data'] as $k1=>$v1) {
foreach($v1['cars'] as $k2=>$v2) {
$counter= 1
foreach($v2['colours'] as $k3=>$v3) {
if ($counter % 5 == 0) {
print $v3; //print every 5th colour
$counter++;
}
}
}
}
发布于 2018-07-31 04:09:40
您的计数器需要在if语句之外
$counter = 1;
foreach($data['data'] as $k1=>$v1) {
foreach($v1['cars'] as $k2=>$v2) {
foreach($v2['colours'] as $k3=>$v3) {
if ($counter % 5 == 0) {
print $v3; //print every 5th colour
}
$counter++;
}
}
}
原因是每次执行循环时,您都希望计数器递增,而不是在条件为真时递增
发布于 2018-07-31 04:15:02
我相信你可以在5上array_chunk $v2并且只输出。
foreach($data['data'] as $k1=>$v1) {
foreach($v1['cars'] as $k2=>$v2) {
$temp = array_chunk($v2['colours'],5);
foreach($temp as $val){
echo $val[0];
}
}
}
这也比你的方法迭代次数少,因为它跳过了五个元素中的四个。
我的代码的简短演示:https://3v4l.org/GbU2T
https://stackoverflow.com/questions/51601545
复制相似问题