ここでは、PHP 言語でよく使われる配列演算関数、array_map 関数を紹介します。私はこの関数に初めて触れたとき、その強力な機能に衝撃を受け、さらに面白く感じました。 PHP言語について。
PHP 関数について学ぶのに最適な場所は、PHP マニュアルのこの関数の説明です:
array array_map ( callable $callback , array $arr1 [, array $... ] )
array_map() は、コールバックが適用された後、arr1 内のすべてのユニットを含む配列を返します。コールバックによって受け入れられる引数の数は、array_map() 関数に渡される配列の数と一致する必要があります。つまり、$arr1 配列の各ユニットの値は、コールバック関数を通じて、新しい配列の対応するユニットの値として新しい配列に保存されます。もう 1 つの優れた点は、この関数が複数の配列を渡すことができることです。つまり、定義したコールバック関数では、複数の配列の各ユニットの値を同時に操作できます
例子1:<?php function cube($n){ return $n*$n;}$num = array(1,2,3,4,5);var_dump(array_map("cube", $num)); 输出:array(5) { [0]=> int(1) [1]=> int(4) [2]=> int(9) [3]=> int(16) [4]=> int(25) }
例子2(匿名函数也有效):<?php $func = function($n,$m){ return ("这个数组的第 $n 个位置的值是 $m <br>");};$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) であるという状況が発生します。現時点では、キーを直接使用して特定のデータを取得することはできません。現時点で一般的に使用される方法は、パラメータを true に設定すると配列型のデータを返すことができます。このときに返される配列は、
$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 つの方法は個人的な希望に依存します