array_map()は、 Arrayの各要素にコールバック関数を適用し、結果を返すPHPの非常に強力な関数です。 array_map()を使用する場合、通常、arrayを引数として渡してから、配列の各要素にコールバック関数を適用します。ただし、 array_map()は、複数の配列をパラメーターとして受信することもサポートしているため、複数の配列の要素を同時に動作させることができます。
この記事では、実用的なケースを組み合わせて、 array_map()で複数の配列を使用する方法を示し、コードの例を提供します。
array_map()関数の基本的な構文は次のとおりです。
array_map(callable $callback, array $array1, array $array2, ..., array $arrayN)
呼び出し可能な$ callback :コールバック関数は、配列内の各要素に作用します。
array $ array1、array $ array2、...、array $ arrayn :複数の配列が入力として使用されます、 array_map()は各配列の要素を処理のためにコールバック関数に渡します。
array_map()関数によって返される結果はarrayであり、その中の各要素はコールバック関数の実行の結果であることに注意する必要があります。
数値を含む2つの配列があり、もう1つは数値を含む2つの配列があり、これら2つの配列の対応する要素を追加する必要があるとします。 Array_map()を使用してこれを実現できます。
<?php
// 2つの配列を定義します
$array1 = [1, 2, 3, 4];
$array2 = [10, 20, 30, 40];
// 使用 array_map() 配列に追加
$result = array_map(function($a, $b) {
return $a + $b;
}, $array1, $array2);
// 出力結果
print_r($result);
?>
Array
(
[0] => 11
[1] => 22
[2] => 33
[3] => 44
)
この例では、 array_map()は2つのarray $ array1と$ array2を受信し、匿名関数を介して対応する要素の各ペアを追加します。最後に、 $ resultアレイには、各ペアの要素を追加した結果が含まれています。
別の一般的な要件は、2つの配列の要素を組み合わせて出力をフォーマットする必要があることです。たとえば、あるアレイは文字列と別の保存番号を保存します。これをフォーマットされた文字列に結合する必要があります。
次の2つの配列があるとします。
<?php
$names = ["Apple", "Banana", "Cherry", "Date"];
$prices = [2.5, 3.0, 2.8, 3.5];
// 使用 array_map() 2つの配列の要素をフォーマットされた文字列に結合します
$formatted = array_map(function($name, $price) {
return $name . " costs $" . number_format($price, 2);
}, $names, $prices);
// 出力フォーマット結果
print_r($formatted);
?>
Array
(
[0] => Apple costs $2.50
[1] => Banana costs $3.00
[2] => Cherry costs $2.80
[3] => Date costs $3.50
)
この例では、各果物の名前と対応する価格をフォーマットされた文字列に組み合わせて、 number_format()を使用して、価格に2つの小数の場所があることを確認します。 array_map()は、この操作を非常に簡単にします。
より多くの配列があり、それらに対してより複雑な操作を行いたい場合、 array_map()は依然として理想的な選択です。複数の配列の要素に基づいて新しい値を計算する必要があり、ニーズに応じて入力として複数の配列を柔軟に使用できるとします。
たとえば、アイテムの名前、価格、割引率に基づいて、各アイテムの割引価格を計算する必要があるとします。これを行うことができます。
<?php
$products = ["Apple", "Banana", "Cherry", "Date"];
$prices = [2.5, 3.0, 2.8, 3.5];
$discounts = [0.1, 0.2, 0.15, 0.05];
// 使用 array_map() 割引価格を計算します
$discounted_prices = array_map(function($product, $price, $discount) {
$discounted_price = $price * (1 - $discount);
return $product . " now costs $" . number_format($discounted_price, 2);
}, $products, $prices, $discounts);
// 出力割引後の価格
print_r($discounted_prices);
?>
Array
(
[0] => Apple now costs $2.25
[1] => Banana now costs $2.40
[2] => Cherry now costs $2.38
[3] => Date now costs $3.33
)
この例は、3つの配列( $製品、 $価格、 $割引)を同時に使用して計算し、フォーマットされた出力を生成する方法を示しています。
array_map()関数は、複数の配列を処理するための強力なツールであり、複数の配列の要素を非常に簡潔に動作させることができます。単純な数学計算であろうと複雑な文字列操作であろうと、 array_map()は適切なサポートを提供できます。複数の配列をパラメーターとして渡すことにより、これらの配列の要素をコールバック関数で非常に便利に処理できます。
関連タグ:
array_map