配列の中身を下記のコードの結果で表示される内容と同じように表示したいのですが、
仮に配列が10階層、20階層になっている場合、下記のコードを増やさなくてはなりません。
そこで、配列が何十階層になっていても同じような結果を表示するようにするコードを教えて下さい。
関数を作って試してはいるのですが、頭がこんがらがって私には作れませんでした。
よろしくお願いします。
foreach($data as $k1 => $v1){
if(!is_array($v1)){ print "\$data['$k1'] => $v1<br />\n"; continue;}
foreach($v1 as $k2 => $v2){
if(!is_array($v2)){ print "\$data['$k1']['$k2'] => $v2<br />\n"; continue;}
foreach($v2 as $k3 => $v3){
print "\$data['$k1']['$k2']['$k3'] => $v3<br />\n";
}
}
}
再帰呼び出しを使ってみました。こんな感じでどうでしょう。
<?php //サンプル配列 $samp = array(array(array(1,2,3),array(4,5)), array(6,7,8)); var_dump($samp); //再帰呼び出し function recursive($arr, $str) { if (is_array($arr)) { foreach ($arr as $key=>$val) { recursive($val, "{$str}['{$key}']"); } } else { print "{$str} => {$arr}<br />\n"; } } //メインプログラム recursive($samp, '$data'); ?>