0

多次元配列print_r配列の値の抽出に問題があります。

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

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

    )

[1] => eb38f736ef826180218c8c0c804f7bebe6d995c1
)

'referent'値を抽出したいのですが、ネストされたforeachのこのエラーが発生した場合:

Warning: Invalid argument supplied for foreach() in

正確に2番目のforeachの行:

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

どこが間違っているのですか?

4

2 に答える 2

1

に到達したとき、変数は配列ではありません$post[1]

foreachしたがって、最初のものでは正常に動作するはずですが、配列ではないものに入ることができないため、2番目のものは失敗します=)。

配列を反復処理する必要がありますか?それとも、値がどこにあるかを知っているので、値を直接取得できますか?

于 2013-03-02T21:37:18.777 に答える
0

これは、配列ではない配列の 2 番目の要素が原因です。次の方法でこれを行うことができます。

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 に答える