数组提取与PHP

时间:2013-03-02 21:34:37

标签: php arrays multidimensional-array

我在array multidimensional,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;
                }
            }

我在哪里做错了?

2 个答案:

答案 0 :(得分:1)

当变量到达$post[1]时,它不是数组。

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

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

答案 1 :(得分: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'];
      }
   }
}