2010年04月10日

php:関数を再帰的に利用できる関数

配列に対して関数を再帰的に適用させる関数は幾つかありますが、どれも使い勝手が悪い。array_walk_recursive では与え値は1つだけで、コールバックに渡されるのは「配列の値、配列の添字、与え値」と言う感じで、組み込み関数にも適用しづらい。コールバックには「処理対象、オプション1、オプション2・・・」って渡す方が使いやすい。

recursive('mb_convert_encoding', $ary, 'UTF-8', 'SJIS');
recursive('trim', $ary);

とか出来ればラクだよなー。
なので与え値可変長で、関数を再帰的に利用する関数を作ってみました。

ちなみに array_map_recursive も巷で見かけるけど array_map 自体が配列の処理が前提で、与え値にも配列を要求するので再帰処理として面倒(じゃない?)
他、使えそうなのって無かったよなぁ・・・。探す前に作ってしまうのは、仕事ってより骨休めの趣味なんだろなぁ。

「結果の違い」で結果の表記を間違っていましたので直しました。(同日修正)
続きを読む
posted by HiFa at 14:23 | 🌁 | Comment(0) | TrackBack(0) | ときどきPHP | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。