PHPでは、アレイは非常に重要なデータ構造であり、連想配列は毎日の開発で一般的に使用される形式です。多くの場合、特定のルールに従って連想配列を迅速に構築する必要があります。 PHPの2つの関数array_fill_keys()とarray_map()を非常に巧妙に使用して、このタスクを効率的に完了することができます。
array_fill_keys()は、指定されたキーに基づいて同じ値で満たされた連想配列を生成する非常に便利なPHP関数です。その定義は次のとおりです。
array array_fill_keys ( array $keys , mixed $value )
$キー:キー名の配列。
$値:各キーの対応する値に記入します。
たとえば、 array_fill_keys()を使用して、複数のキーを含む配列を作成し、同じ値に入力します。
$keys = ['a', 'b', 'c'];
$value = 0;
$result = array_fill_keys($keys, $value);
print_r($result);
出力結果:
Array
(
[a] => 0
[b] => 0
[c] => 0
)
array_map()は、アレイ内の各要素にコールバック関数を適用し、新しい配列を返す別の非常に一般的に使用されるPHP関数です。その定義は次のとおりです。
array array_map ( callable $callback , array $array1 [, array $array2 [, array $... ]] )
$ callback :配列内の各要素で操作を実行するコールバック関数。
$ array1 :配列を入力すると、複数の配列パラメーターがあり、コールバック関数がこれらの配列に順番に機能します。
たとえば、配列の各値を処理できます。
$numbers = [1, 2, 3, 4];
$squared = array_map(function($num) {
return $num * $num;
}, $numbers);
print_r($squared);
出力結果:
Array
(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
)
キー名のセットを含む配列があり、各キーに1つの値を生成し、別の配列から生成し、これらの値には一部の処理が必要であるとします。 array_fill_keys()とarray_map()を組み合わせることにより、このタスクを非常に効率的に達成できます。
たとえば、複数の製品名の配列があり、各製品の初期価格を設定する必要があり、これらの価格を特定のルールに従って調整する必要があるとします。
$keys = ['product1', 'product2', 'product3'];
$prices = [10, 20, 30];
// 使用array_fill_keys各アイテムの初期価格を生成します
$initialPrices = array_fill_keys($keys, null);
// 使用array_map価格を調整します
$adjustedPrices = array_map(function($price) {
return $price * 1.2; // たとえば、追加します20%価格
}, $prices);
// 将调整后価格与商品键关联
$finalPrices = array_combine($keys, $adjustedPrices);
print_r($finalPrices);
出力結果:
Array
(
[product1] => 12
[product2] => 24
[product3] => 36
)
この結合された方法は、バッチで動作するために大量のデータが必要なシナリオに特に適しています。例えば:
データベースから製品名を取得し、価格を生成し、割引を適用します。
構成配列を生成し、ユーザーのセットが入力した設定に従って処理します。
複数のデータセットをマップし、同じキー名で連想配列を返します。
このアプローチの利点は次のとおりです。
簡潔:重複したコードロジックは避けてください。
Flexible : array_map()は、カスタムコールバック関数を介してデータを柔軟に調整できます。
効率:2つの機能の組み合わせにより、コードの量を効果的に削減し、開発効率を向上させることができます。
array_fill_keys()によって生成された配列内のすべての値は、同じ値に初期化されます。異なるルールに従って値を生成する必要がある場合は、 array_map()と組み合わせて使用することを検討できます。
Array_combine()関数は、2つの配列を連想配列に結合するために使用されます。これは、調整された価格を製品名に関連付けるために使用されます。
array_fill_keys()とarray_map()を組み合わせることにより、連想配列の構築と変更を非常に簡潔かつ効率的に処理することができます。データ処理であろうと、特定の構造の配列のバッチ生成であろうと、これら2つの機能の組み合わせにより、コードを大幅に簡素化できます。