如何迭代数组的元素直到第七个

时间:2016-06-21 19:26:23

标签: php arrays

我有一个遍历数组的函数

function ($data)
        {
            $path = $data->data->data->clicks;
            foreach ($path as $key => $item){
                if ($key >= 0) {
                $array[] = $item->clicks;
                }     
            }
            return json_encode($array);   
        }

我试着让它迭代直到它的第七个键,我写了一个if语句,但我对此很新,我不知道该怎么做。

如果它有助于阵列结构如下所示:

["data"]=>
  object(stdClass)#212 (3) {
    ["status_code"]=>
    int(200)
    ["data"]=>
    object(stdClass)#211 (3) {
      ["days"]=>
      int(30)
      ["total_clicks"]=>
      int(6)
      ["clicks"]=>
      array(30) {
        [0]=>
        object(stdClass)#215 (2) {
          ["clicks"]=>
          int(0)
          ["day_start"]=>
          int(1466395200)
        }
        [1]=>
        object(stdClass)#216 (2) {
          ["clicks"]=>
          int(0)
          ["day_start"]=>
          int(1466308800)
        }
        [2]=>
        object(stdClass)#217 (2) {
          ["clicks"]=>
          int(0)
          ["day_start"]=>
          int(1466222400)
        }

2 个答案:

答案 0 :(得分:3)

只需添加一个在大于7

时计数和中断的变量
$num_loops = 0;
foreach ($path as $key => $item){
    $num_loops++;
    if($num_loops > 7) break;
    if ($key >= 0) {
        $array[] = $item->clicks;
    }
}

答案 1 :(得分:0)

使用array_maparray_slice函数(没有循环,没有if条件)的简短方法:

$path = $data->data->data->clicks;
$clicks = array_map(function($o){
    return $o->clicks; 
}, array_slice($path, 0, 7));