PHP は多数派グループのマージを実装します

WBOY
リリース: 2023-05-07 13:30:11
オリジナル
1127 人が閲覧しました

PHP 開発では、複数の配列をマージする必要がある状況がよくありますが、マージされた配列には、元の配列のすべての要素が含まれ、各キーと値のペアの関係が保持されている必要があります。この記事では、PHP を使用して多数決グループのマージを実現する方法を紹介します。

1. array_merge 関数

PHP の組み込みの array_merge 関数は、2 つ以上の配列をマージできます。キー名が同じであれば、すべての配列の要素を新しい配列にマージします。その後、後の値で前の値が上書きされます。

サンプルコードは次のとおりです:

$arr1 = array('a', 'b', 'c'); $arr2 = array('d', 'e', 'f'); $arr3 = array('g', 'h', 'i'); $newArr = array_merge($arr1, $arr2, $arr3); print_r($newArr);
ログイン後にコピー

出力結果は次のとおりです:

Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i )
ログイン後にコピー

2. カスタム関数

同じ値が複数の配列に存在する場合マージされるキー名。array_merge 関数は以前の値を上書きしますが、これは要件を満たしていません。この問題を解決するには、関数をカスタマイズして多数決の組み合わせのマージを実現します。

カスタム関数のロジックは次のとおりです。配列のすべてのキーと値のペアを走査し、同じキー名の値を新しい配列に保存します。同じキー名が存在する場合は、その値をキー名でインデックス付けされた配列にキーが存在しない場合、値は新しい配列要素に保存されます。

サンプルコードは以下のとおりです:

function multiArrayMerge(...$arrays) { $result = array(); foreach ($arrays as $array) { foreach ($array as $key => $value) { if (is_int($key)) { $result[] = $value; } else { if (array_key_exists($key, $result) && is_array($value)) { $result[$key] = multiArrayMerge($result[$key], $value); } else { $result[$key] = $value; } } } } return $result; }
ログイン後にコピー

複数の配列マージ関数の呼び出し例:

$arr1 = array( 'a' => 1, 'b' => array( 'c' => 2, 'd' => array( 'e' => 3 ) ) ); $arr2 = array( 'a' => 4, 'b' => array( 'c' => 5, 'd' => array( 'f' => 6 ) ) ); $arr3 = array( 'g' => 7, 'h' => array( 'i' => 8 ) ); $result = multiArrayMerge($arr1, $arr2, $arr3); print_r($result);
ログイン後にコピー

出力結果:

Array ( [a] => 4 [b] => Array ( [c] => 5 [d] => Array ( [e] => 3 [f] => 6 ) ) [g] => 7 [h] => Array ( [i] => 8 ) )
ログイン後にコピー

3.

カスタム関数を使用して多数派グループのマージを実現する場合、いくつかの問題に注意する必要があります:

1. 同じキー名と異なる配列の値がある場合マージされるとデータの競合が発生する可能性があるため、特定のビジネス ロジックが処理されることを考慮する必要があります。

2. 関数の無限再帰を防ぐためには、配列内の値を判定する必要があります。配列の場合は再帰演算を実行し、それ以外の場合は結果に値を直接保存します。配列。

3. パラメータの前の 3 つのドット (...) は、任意の数のパラメータを受け入れることができる可変長パラメータ リストを示します。パラメータ リストは、使用する配列に自動的に変換されます。

4. 概要

PHP には配列をマージする array_merge 関数が用意されていますが、キーと値のペアの関係を保持する必要がある場合、値を同じもので上書きしてしまうという問題が発生します。キーの名前。この記事では、複数の配列をマージし、キーと値のペアの関係を保持する必要がある場合に適したカスタム関数を実装する方法を紹介しますが、使用する場合は、同じキー名のデータの競合の問題に注意する必要があります。

以上がPHP は多数派グループのマージを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!