Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
array_walk_recursive と create_function を組み合わせて、少ないコード量で配列の再帰処理を実現します。
二次元や三次元の多次元配列のすべての要素に対して、同一の処理を実行したい時にとても便利。
<?php $arr = array('1*1', '2-2', array( '3*3', '4-4', array( '5*5', '6-6', array( '7*7', '8-8', array( '9*9' ) ) ) )); array_walk_recursive($arr, create_function('&$val', ' $val = str_replace(array("*", "-"), "", $val); ') ); var_dump($arr); /** * 配列のキーも取得したい時は以下のように書きます。 * * create_function('&$val', ' * ↓ * create_function('&$val, $key', ' */ ?>
※. PHP5.3 からは create_function を使わなくても 無名関数 が利用できます。
array(3) { [0]=> string(2) "11" [1]=> string(2) "22" [2]=> array(3) { [0]=> string(2) "33" [1]=> string(2) "44" [2]=> array(3) { [0]=> string(2) "55" [1]=> string(2) "66" [2]=> array(3) { [0]=> string(2) "77" [1]=> string(2) "88" [2]=> array(1) { [0]=> string(2) "99" } } } } }