PHP には多くの組み込み関数がありますが、その中でも array_map() 関数は非常に便利な関数の 1 つです。この関数は、1 つ以上の配列を入力として受け入れ、新しい配列を返すことができます。新しい配列の各要素は、コールバック関数によって処理された入力配列の結果です。 array_map() 関数は主に、配列内の各要素を操作して新しい配列を返すなどの操作を簡素化するために使用されます。
array_map() 関数の構文は次のとおりです。
array_map(callable $callback, array ...$arrays): array
このうち、$callback はコールバック関数、$arrays は 1 つ以上の配列です。この関数は、$arrays 内のすべての配列を反復処理し、各配列要素に対してコールバック関数を順番に呼び出し、最後にすべての新しい要素を含む配列を返します。
コールバック関数は、入力要素を操作する関数です。コールバック関数によって受け取られるパラメータの数は、入力配列の要素の数と同じである必要があり、最初のパラメータは常に入力配列の要素です。コールバック関数には複数の入力配列を含めることができますが、各入力配列の要素数は同じである必要があります。
次は、array_map() 関数を使用して配列内の要素を 2 倍にする簡単な例です:
function double($n) { return $n * 2; } $numbers = array(1, 2, 3, 4, 5); $doubled = array_map('double', $numbers); print_r($doubled);
出力:
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
この例では、最初に A を定義します。入力値を 2 で乗算し、結果を返すコールバック関数 double()。次に、1 から 5 までの整数を含む配列 $numbers を定義します。次に、double() 関数をコールバック関数として、$numbers 配列を入力として使用して、array_map() を呼び出します。最後に、出力を $doubled 配列に保存し、画面に表示します。
コールバック関数で複数の入力配列を使用することもできます。たとえば、 array_map() を使用して 2 つの配列の要素を合計することができます。
function sum($a, $b) { return $a + $b; } $numbers1 = array(1, 2, 3, 4, 5); $numbers2 = array(10, 20, 30, 40, 50); $summed = array_map('sum', $numbers1, $numbers2); print_r($summed);
出力:
Array ( [0] => 11 [1] => 22 [2] => 33 [3] => 44 [4] => 55 )
この例では、新しいコールバック関数 sum() を定義します。引数を入力して追加します。 2 つの配列 $numbers1 と $numbers2 を作成し、コールバックとして sum() 関数を使用して array_map() 関数に渡します。この関数は、$numbers1 配列と $numbers2 配列の要素を加算した結果を含む新しい配列 $summed を返します。
array_map() には、匿名関数をコールバック関数として使用するという、非常に広く使用されている機能もあります。匿名関数は PHP 5.3 で導入された新機能で、必要に応じて関数を動的に作成できるようになります。以下は、無名関数を使用して文字列配列内のすべての文字列の長さを計算する例です。
$strings = array('hello', 'world', 'goodbye'); $lengths = array_map(function($str) { return strlen($str); }, $strings); print_r($lengths);
出力:
Array ( [0] => 5 [1] => 5 [2] => 7 )
この例では、文字列を入力として返し、その文字列の長さを返します。 $strings 配列を入力として使用して、この無名関数をコールバック関数として array_map() 関数に渡します。最後に、新しい配列 $lengths が出力されます。これには、$strings 配列内のすべての文字列の長さが含まれます。
つまり、array_map() 関数は、配列操作をより明確かつ簡潔にすることができる非常に便利なツールです。コールバック関数も非常にカスタマイズ可能で、さまざまなデータ型を簡単に操作できます。この記事が array_map() 関数の理解と使用に役立つことを願っています。
以上がPHP array_map() 関数の使用法と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。