PHP で指定されたキー名に従って複数の配列を 1 つの配列にマージする方法
開発中、指定されたキー名に従って複数の配列を 1 つの配列にマージする必要がよく発生します。この必要性は、データを操作する場合、特にデータベースの結果セットを操作する場合などに非常に一般的です。この記事では、この機能を実現するための一般的な方法をいくつか紹介し、対応するコード例を示します。
方法 1: ループ走査を使用する
最も簡単な方法は、ループを使用してすべての配列を走査し、指定されたキー名に従って対応する値を新しい配列に追加することです。サンプル コードは次のとおりです。
function mergeArrays($key, ...$arrays) { $result = []; foreach ($arrays as $array) { if (isset($array[$key])) { $result[] = $array[$key]; } } return $result; } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
上記のコードを実行すると、出力結果は次のようになります。
Array ( [0] => Alice [1] => Bob [2] => Charlie )
方法 2: array_map 関数を使用する
array_map 関数はコールバック関数を適用できます。複数の配列に変換し、新しい配列を返します。この関数を使用して、複数の配列を結合できます。サンプル コードは次のとおりです。
function mergeArrays($key, ...$arrays) { $callback = function ($array) use ($key) { return $array[$key] ?? null; }; $result = array_map($callback, $arrays); return array_filter($result, function($value) { return $value !== null; }); } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
上記のコードを実行すると、出力結果は次のようになります。
Array ( [0] => Alice [1] => Bob [2] => Charlie )
方法 3: array_reduce 関数を使用する
array_reduce 関数を使用して、配列内の要素を取得し、指定されたコールバック関数に従って処理し、最終結果を返します。この関数を使用して、複数の配列を結合できます。サンプル コードは次のとおりです。
function mergeArrays($key, ...$arrays) { $callback = function ($result, $array) use ($key) { if (isset($array[$key])) { $result[] = $array[$key]; } return $result; }; $result = array_reduce($arrays, $callback, []); return $result; } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
上記のコードを実行すると、出力結果は次のようになります。
Array ( [0] => Alice [1] => Bob [2] => Charlie )
上記は、指定された配列に従って複数の配列を 1 つの配列にマージするいくつかの一般的な方法の例です。キーの名前。実際の状況に応じて適切な方法を選択すると、コードの効率と可読性が大幅に向上します。お役に立てれば!
以上がPHPで指定されたキー名に従って複数の配列を1つの配列にマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。