0

我对数组多维 print_r 数组的提取值有疑问:

Array
(
[0] => Array
    (
        [0] => Array
            (
                [referent] => vespucci
            )

        [1] => Array
            (
                [referent] => colombo
            )

    )

[1] => eb38f736ef826180218c8c0c804f7bebe6d995c1
)

我想提取“参考”值,但如果我收到嵌套 foreach 的错误:

Warning: Invalid argument supplied for foreach() in

完全符合第二个 foreach:

foreach($posts as $post)
            {
                foreach($post as $po)
                {
                    $change[] = $po;
                }
            }

我在哪里做错了?

4

2 回答 2

1

您的变量在到达时不是数组$post[1]

所以它应该在第一个上工作正常,但第二个失败,因为你不能foreach进入不是数组的东西=)。

您是否必须遍历数组,或者您可以直接获取值,因为您知道它在哪里?

于 2013-03-02T21:37:18.777 回答
0

这是因为数组的第二个元素不是数组;你可以这样做:

foreach($posts[0] as $post)
    $change[] = $post;

如果您只想要参考值,您可以使用:

foreach($posts[0] as $post)
    $change[] = $post['referent'];

这是一般的:

foreach($posts as $post){
   if( is_array($post)){
      foreach($post as $po){
          if(isset($po['referent']))
            $change[] = $po['referent'];
      }
   }
}
于 2013-03-02T21:38:35.187 回答