• バックアップ一覧
  • ソース を表示
  • PHP/全般/array_map()を使って複雑な構造の変数を処理 は削除されています。
    • 1 (2006-05-12 (金) 13:19:47)

PHP/array_map()を使って複雑な構造の変数を処理

array_map()とは?

 function func1($val){
     return $val * 10;
 }
 $arr = array(1,2,3);
 $arr2 = array_map('func1',$arr);
 print_r($arr2); // => [ 10, 20, 30 ]

複雑な構造の変数を処理する

配列の中に(スカラ)変数や配列が混じってる場合にarray_map()を適用するには以下のようにする。

 function func1($val){
     if (is_array($val)){
        $val = array_map('func1',$val);
     }else{
        $val = $val * 10;
     }
     return $val;
 }
 $arr = array('var1'=>1,'var2'=>2,'var3'=>array('var4'=>4,'var5'=>5));
 print_r($arr); // => [ 1, 2, [ 4, 5 ] ]
 $arr2 = array_map('func1',$arr);
 print_r($arr2); // => [ 10, 20,  [ 40, 50 ] ]

$_REQUEST

実際の使い所として、$_REQUESTの値をまとめてHTMLエスケープする場合には以下のようにする。

 function esc($val){
     if (is_array($val)){
        $val = array_map('esc',$val);
     }else{
        $val = htmlspecialchars($val);
     }
     return $val;
 }
 $req = array_map('esc',$_REQUEST);

破壊的にする場合には、

 function esc(&$val){
     if (is_array($val)){
        array_map('esc',&$val);
     }else{
        $val = htmlspecialchars($val);
     }
 }

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS