2 次元配列内の繰り返しの組み合わせを削除する実装コード

WBOY
リリース: 2016-07-25 09:00:22
オリジナル
911 人が閲覧しました
array( array('a' => 'b'), array('b' => 'a') ); などの 2 次元配列内の重複するキーと値を削除する必要があります。同じ組み合わせでは、配列 ('a' => 'b') のみが保持されます。

組み合わせと順列は異なることに注意してください。 (a,b) と (b,a) は同じ組み合わせですが、異なる順列です。

ヒント: 1. 2 次元配列を 1 次元配列に変換します。具体的には、2 次元配列のキーと値を結合し、それらをすべて 1 次元配列に格納します。 > 'b')、キーと値を組み合わせて、値を a-b 形式の文字列に変換します。 次に、それを 1 次元配列に格納し、「-」を追加して、後続の比較時に元のキーと値のペアを復元できるようにします。

2. 変換後、最初に繰り返されている文字列を削除します。この例では「b-d」で、2 回繰り返されているので 1 つを削除します。もう一度比較してください。比較の考え方は次のようになります。たとえば、1次元配列に格納されているキー値文字列「a-b」を「b-a」に変換し、存在しない場合は1次元配列内を検索します。 「b-a」の形の文字列の場合、「a-b」の繰り返しの組み合わせがないことを意味し、「a-b」を分割して初期配列の形式で 2 次元配列に格納します。 「b-a」の形の文字列があり、それが文字列「a-b」の後に位置するということは、文字列「a-b」の組み合わせが繰り返し存在することになりますが、それでも分割します。それを配列に 2 次元で格納します。これは、繰り返しの組み合わせ「b-a」が「a-b」の後に配置されているため、文字列「b-a」をループすると、文字列の組み合わせ「a」も含まれる文字列「b-a」が得られます。 -b' ですが、'b-a' の前に 'a-b' がすでに格納されているため、'b-a' は格納されなくなり、繰り返しの組み合わせを削除するという目的が達成されます。繰り返される文字列の位置の比較は、1 次元配列内の対応するキー名を通じて実行されます。

完全なコード:

りー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート