現在の位置: ホーム> 最新記事一覧> [array_map()複数の配列パラメーターを受信して​​同時に操作する方法は?実用的なケース共有

[array_map()複数の配列パラメーターを受信して​​同時に操作する方法は?実用的なケース共有

M66 2025-06-15

array_map()は、 Arrayの各要素にコールバック関数を適用し、結果を返すPHPの非常に強力な関数です。 array_map()を使用する場合、通常、arrayを引数として渡してから、配列の各要素にコールバック関数を適用します。ただし、 array_map()は、複数の配列をパラメーターとして受信することもサポートしているため、複数の配列の要素を同時に動作させることができます。

この記事では、実用的なケースを組み合わせて、 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()は適切なサポートを提供できます。複数の配列をパラメーターとして渡すことにより、これらの配列の要素をコールバック関数で非常に便利に処理できます。