ホームページ >バックエンド開発 >PHPチュートリアル >PHP で複数の配列を単一の行ベースの構造にマージするにはどうすればよいですか?

PHP で複数の配列を単一の行ベースの構造にマージするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-29 16:46:10288ブラウズ

How Can I Merge Multiple Arrays into a Single Row-Based Structure in PHP?

行ベース構造の複数の配列からのデータのマージ

データ操作タスクでは、多くの場合、異なるソースからのデータを結合する必要があります。包括的なデータセットを作成します。これは、複数の配列のデータを結合することで実現できます。特に、行ベースの構造を構築することが目的の場合、array_merge_recursive 関数は強力なソリューションを提供します。

次の例を考えてみましょう。 2 つの配列は次の構造で与えられます。

  • 配列 1:

    • ['gross_value' => '100', '数量' => '1']
    • ['gross_value' => '200', '数量' => '1']
  • 配列 2:

    • ['item_title_id' => '1', 'order_id' => '4']
    • ['item_title_id' => '2', 'order_id' => '4']

目的は、これらの配列の内容を次の構造を持つ単一の配列にマージすることです:

  • ['gross_value ' => '100', '数量' => '1', 'item_title_id' => '1', 'order_id' => '4']
  • ['総額' => '200', '数量' => '1', 'item_title_id' => '2', 'order_id' => '4']

これを実現するには、array_merge_recursive 関数を使用できます。この関数は配列を再帰的にマージし、同じキーを持つ値をネストされた配列に結合します。ただし、特定のコンテキストでは、配列には数値キーがあります。 array_merge_recursive が正しく動作するには、すべての数値キーを文字列 (連想配列) に変換する必要があります。

次のコード スニペットは、解決策を示しています。

$ar1 = [
    ['gross_value' => '100', 'quantity' => '1'],
    ['gross_value' => '200', 'quantity' => '1']
];

$ar2 = [
    ['item_title_id' => '1', 'order_id' => '4'],
    ['item_title_id' => '2', 'order_id' => '4']
];

// Convert numeric keys to strings
foreach ($ar1 as &$row) {
    $row = array_combine(array_keys($row), array_values($row));
}

foreach ($ar2 as &$row) {
    $row = array_combine(array_keys($row), array_values($row));
}

// Merge arrays
$result = array_merge_recursive($ar1, $ar2);

print_r($result);

このコードを実行すると、必要なマージが生成されます。配列。両方の配列のデータが単一の行ベースの構造に結合されます。

以上がPHP で複数の配列を単一の行ベースの構造にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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