SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】filter_varで再帰処理

問題

配列とか、配列の配列とか、配列の配列の配列などの、各要素を処理するのって、再帰する関数を定義して対応するしかないの?

php

答え

例えば、多次元配列の各要素を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が使えないので注意。

関連するメモ

コメント