0

重複の可能性:
配列の配列をループする

したがって、偶数のキー => 値 (連想) の配列をトラバースする方法はわかっていますが、それを調べて値を出力する必要がある奇妙な配列があります。

$object_array = array(
    'type' => 'I am type',
    array(
        'property' => 'value',
        'property_2' => 'value_2'
    )
);

私ができると思ったことは次のとおりです。

foreach($object as $key=>$vlaue){
   //what now?
}

ご覧のとおり、道に迷ってしまいましたが、次の配列をどのように確認すればよいでしょうか?

4

6 に答える 6

7

あなたが試すことができます:

function traverse($array) {
   foreach ($array as $key => $value) {
      if (is_array($value)) {
         traverse($array);
         continue;
      }
      echo $value;
   }
}
于 2012-11-15T21:51:39.957 に答える
0

試す:

foreach($object_array as $value) {
  if(!is_array($value))
   echo $value;
   else {
    foreach($value as $m)
    echo $m; 
  }
 }

foreachのマニュアル

于 2012-11-15T21:50:15.357 に答える
0

との代替array_walk_recursive()

function mydebug($value, $key) {
    echo $key . ' => ' . $value . PHP_EOL;
}

array_walk_recursive($object_array, 'mydebug');

値を使用して単純なことを行う場合(たとえば、echoingだけ)に便利です。

于 2012-11-15T21:54:29.803 に答える
0

あなたのforループでは、次のことができます:

if(is_array($object[$key]))
    //process inner array here

配列の配列の配列がある場合は、配列の深さによって異なります...など、別の方法が適していますが、レベルが1つしかない場合は、これが非常に簡単な方法です。

于 2012-11-15T21:51:37.377 に答える
0
foreach($object as $key=>$value){
    if( is_array($value) ) {
        foreach($value as $key2=>$value2) {
            //stuff happens
        }
    } else {
        //other stuff
    ]
}
于 2012-11-15T21:53:01.810 に答える
0

さて、あなたはこのようなことをすることができます:

foreach($object_array as $key=>$value)
{
    if(is_array($value) {
        foreach($value as $k=>$v) {
            echo $k." - ".$v;
        }
    } else {
        echo $key." - ".$value;
    }
}
于 2012-11-15T21:53:14.727 に答える