ホームページ >バックエンド開発 >PHPチュートリアル >ネイティブ関数を使用して、共有列に基づいて 2 つの 2D PHP 配列を効率的にマージするにはどうすればよいですか?

ネイティブ関数を使用して、共有列に基づいて 2 つの 2D PHP 配列を効率的にマージするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 22:10:14621ブラウズ

How Can I Efficiently Merge Two 2D PHP Arrays Based on a Shared Column Using Native Functions?

ネイティブ PHP 関数を使用した共有列値に基づく 2D 配列の効率的なマージ

複数の配列を効率的にマージすることは、PHP プログラミングの一般的なタスクです。この記事では、ネストされたループや複雑なプロシージャに頼ることなく、共有列値に基づいて 2 つの 2D 配列をマージするための最適なソリューションを検討します。

2 つのサンプル配列があるとします。

$array1 = [
    ['rank' => '579', 'id' => '1'],
    ['rank' => '251', 'id' => '2'],
];

$array2 = [
    ['size' => 'S', 'status' => 'A', 'id' => '1'],
    ['size' => 'L', 'status' => 'A', 'id' => '2'],
];

目標は、次のとおりです。これらの配列を、一致する ID に基づいて各配列の値を結合する新しい配列にマージします。値:

$mergedArray = [
    ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'],
    ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'],
];

ネイティブ PHP 配列関数の利用

このマージ プロセスを容易にするために、PHP は 2 つのネイティブ関数を提供します:

  • array_merge_recursive(): 2 つの配列をマージします再帰的に、多次元構造を維持します。
  • my_array_merge(): 配列をループし、対応する値をマージするカスタム関数です。

コード例使用するarray_merge_recursive():

$mergedArray = array_merge_recursive($array1, $array2);

my_array_merge() を使用したコード例:

function my_array_merge(array &$array1, array &$array2) {
    $result = [];
    foreach ($array1 as $key => &$value) {
        $result[$key] = array_merge($value, $array2[$key]);
    }
    return $result;
}

$mergedArray = my_array_merge($array1, $array2);

どちらのメソッドも 2 つの配列を効果的にマージし、目的の出力を生成します。 。関数の選択は、開発者の特定のパフォーマンス要件とコードの明瞭さの好みによって異なります。

以上がネイティブ関数を使用して、共有列に基づいて 2 つの 2D PHP 配列を効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。