-3

我遇到了这个问题,试图回显一个大数组。

print_r 看起来像这样: http ://codepaste.net/5js97a

在 foreach 循环中像这样回显前 2 行是没有问题的:$item['name'],但是对于数组内部更深的其余行,我只是得到一个错误。

谢谢!

代码:

function categories($parent = NULL) {
      $query = $this->db->where('parent_id', $parent)->get('categories');
      $results = $query->result_array();

      foreach($results as $result) {
           $child_array = Forummodel::categories($result['id']);
           if(sizeof($child_array) == 0) {
                array_push($results, $result['name']);
           } else {
                array_push($results, array($result['name'], $child_array));
           }
      }

      return $results;
} 

我也在使用codeigniter

4

1 回答 1

0

您正在不断增加的数组上进行迭代。这是您的代码:

function categories($parent = NULL) {
    $query = $this ->db ->where('parent_id', $parent) ->get('categories');
    $results = $query->result_array();
    foreach($results as $result) {
        $child_array = Forummodel::categories($result['id']);
        if(sizeof($child_array) == 0) {
            array_push($results, $result['name']);
        } else {
            array_push($results, array($result['name'], $child_array));
        }
    }
    return $results;
}

foreach 正在向下迭代数组$results,并且您在每个循环中添加它,此外,当您遇到$result不包含“id”或“名称”的迭代时,您可能会收到错误消息。如果您仍然想这样做,您可能希望将子数组放入另一个数组并在 foreach 循环之后合并它们。

于 2012-04-05T19:33:07.797 回答