0

多次元配列にデータを入力していますが、何が入っているのかわかりませんが、データにアクセスしようとしています。基本的にこれは私が持っているものです。

while (some condition) {
     $data[] = $stuff;
}

次に、このようにアクセスしようとしています。

for ($i = 0; $i < count($data); $i++) {
     foreach ($data[$i] as $key => $value) {
          echo $key . " => " . $value;
     }
}

しかし、それは機能していません。それが、私がここで質問している理由です。

また、一時配列に格納してループしようと$data[$i]しましたが、同様に失敗します。

4

4 に答える 4

1
foreach ($data AS $datum) {
   if(is_array($datum)){
      foreach ($datum as $key => $value) {
           echo $key . " => " . $value;
      }
   }else{
       echo 'Sorry mate your $stuff is fcked up';
   }
}
于 2012-09-17T15:34:29.470 に答える
0

このようにできますか?

function show_data($data)
{
    if (is_array($data))
    {
        foreach($data as $key=>$value)
        {
            //do something
            show_data($value);
        }
    } else {
                // do something
        echo $data;
    }
}
于 2012-09-17T15:53:40.580 に答える
0

「機能していない」とはどういう意味ですか? どのようなエラーが発生していますか? var_dump$data[$i] に何かが含まれているかどうかを確認するコマンドを試しましたか?

基本的に、$stuff の内容がわからない場合は、さらに多くのエラーと型のチェックを行う必要があります。たとえば、$data[$i] が配列でない場合、その foreach ループは失敗する可能性があります。is_arrayメソッドの使用を検討してください。

于 2012-09-17T15:26:29.120 に答える
0

私はおそらくそれをするだろう

foreach ($data as $dkey=>$stuffs) 
  {
    foreach ($stuffs as $skey => $value) 
      {
        echo $dkey.' '.$skey . " => " . $value;      
      }
  } 

そして何が得られるか見てください。

于 2012-09-17T15:37:26.537 に答える