人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpについて

配列の中身を下記のコードの結果で表示される内容と同じように表示したいのですが、
仮に配列が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";
}
}
}

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as CONTINUE K2 PHP print
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ホーエンハイム
●60ポイント ベストアンサー

再帰呼び出しを使ってみました。こんな感じでどうでしょう。

<?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');
?>
◎質問者からの返答

素晴らしい!!

これを作りたかったんです。

自分では訳がわからなく頭が燃えそうでした。

脳が足らないんですね〜 ^^;

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ