Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打印PHP数组/JSON对象中的第n个元素?_Php_Arrays_Loops_Math - Fatal编程技术网

如何打印PHP数组/JSON对象中的第n个元素?

如何打印PHP数组/JSON对象中的第n个元素?,php,arrays,loops,math,Php,Arrays,Loops,Math,由于多维数组/JSON对象,我有一些foreach循环。我试图打印最后一个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)

由于多维数组/JSON对象,我有一些foreach循环。我试图打印最后一个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++;
      }


    }
   }  
  }

您的计数器需要在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++;
     }
  }  
}

原因是每次执行循环时,您都希望计数器递增,而不是在条件为真时递增。我相信您可以在5上排列\u chunk$v2并仅输出[0]

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];
   }
  }  
 }
这也比您的方法迭代次数少,因为它跳过了五个元素中的四个


“我的代码”功能的简短演示:

只有当您在第五个元素上时,计数器才会增加。。。这是你用计数器决定的。。。所以它永远不会增加,你也永远不会达到第五次计数;在$counter=1Did的末尾,您是否仅仅因为上一个问题重复而创建了一个新帐户?每个人都会这样。我建议你从现在起只开一个账户。