多次元配列の要素の内容を置換するプログラムを作りたいと思っておりますが、うまくいきません。
$array['result']['test']の様に二次元と決まっていれば、簡単なのですが、四次元の場合も、三次元の場合もあります。
$array['result']['test']['test2']
$array['result']['test']['test2']['test3']
配列内の全ての要素に置換処理を加えるには、どうすればよろしいでしょうか?
http://www.shigeweb.jp/php/project_p/?section=first&page=var
再帰呼び出しで実行する関数を用意すればできます
配列データであるなら配列内の要素に対して再帰用の関数を呼び出し
単一データであればその置換用の関数で処理し
置換したデータを戻り値として戻せばできます
function change( $data ){
if( is_array($data) ){
//配列
foreach($data as $key => $value){
//自分自身を呼び出す
$data[$key] = change($value);
}
}else{
//単一データ
$data = "置換する関数"($data);
}
//処理結果を返す
return $data;
}
$data = $change( $data );
(1)4次元配列が最大なら、すべて4次元配列として使ったら
どうでしょう
(2)4次元配列が本当に必要かアルゴリズムとデータの格納
方法を再検証する
(3)連想配列を使う必要性かだるのか再検討
(4)?Arrayオブジェクトとか使ってもよさそうな?
コメント(0件)