PHP学習ノート--array_map関数

1928 ワード

ここではPHP言語でよく使われる配列操作関数を紹介します.array_map関数は、私が初めてこの関数に触れたとき、この関数の強大な機能に震え、PHP言語の面白さをますます感じました.
説明
PHP関数を理解する最良の場所はPHPマニュアルであり、PHPマニュアルのこの関数についての説明:
array array_map ( callable $callback , array $arr1 [, array $... ] )
array_map()は、arr 1内のすべてのセルがcallbackによって作用した後のセルを含む配列を返す.callbackが受け入れるパラメータの数はarrayに渡すべきです.map()関数の配列数は一致する.つまり$arr 1配列の各セルの値を、コールバック関数によって新しい配列に格納する新しい配列を新しい配列の対応セルの値として格納します.また、この関数が複数の配列に入力できるのはすごいところです.つまり、定義したコールバック関数では、複数の配列の各セルの値を同時に操作することができます.
操作例
  1:
 int(1) [1]=> int(4) [2]=> int(9) [3]=> int(16) [4]=> int(25) } 
  2(       ):
");
};
$a = array(1, 2, 3, 4, 5);
$b = ['  :1','  :2','  :3','  :4','  :5'];
var_dump(array_map($func,$a,$b));
  :
array(5) {
[0]=> string(55) "       1          :1 "
[1]=> string(55) "       2          :2 "
[2]=> string(55) "       3          :3 "
[3]=> string(55) "       4          :4 "
[4]=> string(55) "       5          :5 "
}

2番目の例の匿名関数の文は、$n,$mの2つのパラメータが含まれているため、二重引用符を使用する必要があります.PHPでは、パラメータが表す値を解析するために、二重引用符内の文字がアナライザによって一度解析されます.
最後にデータ開発に携わる際によくある問題ですが、本人はlaravelフレームワークの下でPHP開発を行っていますが、その中のデータモデルを利用してデータを取得する場合には、取り出したデータが返される対象タイプ(ObjClass)であり、その場合はキーを直接利用してあるデータを取り出すことができません.この場合に一般的に採用される方法はjson_decode()の方法で、パラメータをtrueに設定すると配列タイプのデータが返されますが、このとき返される配列は2階層の配列です.
$arr = array(
    0 => array(
        'id' => 11111
    ),
    1 => array(
        'id' => 22222
    ),
    2 => array(
        'id' => 33333
    )
);

このときforeachでidを取り出すこともできますがarray_map()メソッド
$id_arr = array_map(function($v) {
    return $v['id'];
}, $arr);
  :
array(3) {
[0]=> int(111) 
[1]=> int(222) 
[2]=> int(333) }

しかしforeachは配列を巡るのも速く、この2つの方法は個人の意思を見ることです.