【php】filter_varで再帰処理
問題
配列とか、配列の配列とか、配列の配列の配列などの、各要素を処理するのって、再帰する関数を定義して対応するしかないの?
答え
例えば、多次元配列の各要素をaddslashesする場合、
自前で関数を用意すると以下のような形
//定義 function addslashes_deep($value) { return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value); } //使う $b = addslashes_deep($a);
filter_var を使うと以下のように関数定義不要。
$b = filter_var($a, FILTER_CALLBACK, ['options' => 'addslashes']);
メモ
古いphp環境では filter_varが使えないので注意。
コメント