PHP の 2 次元数値の組み合わせでは重複が削除されません

WBOY
リリース: 2023-05-23 11:40:07
オリジナル
545 人が閲覧しました

PHP では、配列を使用する必要がよくあり、2 つの配列を 1 つの配列にマージしたり、複数の配列を 1 つの配列にマージしたりするなど、配列をマージする必要がよくあります。 2 次元配列をマージする場合、マージされた配列が自動的に重複排除されないという問題が発生することがあります。この記事では、重複排除を行わない PHP の 2 次元数値の組み合わせの問題と解決策を紹介します。

1. 2 次元配列とは

PHP では、配列は非常に重要なデータ構造であり、データのコレクションであり、各データには対応するキーがあり、値と索引。 2 次元配列は、別の配列内にネストされた配列です。つまり、各要素が配列です。

2. PHP の 2 次元配列

PHP では、2 次元配列を表す方法が 2 つあり、1 つは array() 関数を使用する方法、もう 1 つは array() 関数を使用する方法です。 [] 構文 Sugar、ここに例を示します:

// 使用array()函数表示二维数组
$students = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 19),
    array('name' => '王五', 'age' => 20)
);

// 使用[]语法糖表示二维数组
$students = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];
ログイン後にコピー

3. PHP での 2 次元配列のマージ

PHP には、配列をマージするための array_merge() 関数が用意されています。複数の配列をマージします。新しい配列を返します。サンプル コードは次のとおりです:

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '赵六', 'age' => 21],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);
ログイン後にコピー

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

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 赵六
            [age] => 21
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
ログイン後にコピー

array_merge() 関数を使用すると簡単にマージできることがわかります。 2 つの配列を 1 つの配列にします。ただし、マージされた配列に重複要素がある場合、以下に示すように、マージされた配列は自動的に重複排除されません。

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);
ログイン後にコピー

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

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
ログイン後にコピー

それが確認できます。マージされた配列には重複する要素が 2 つあることがわかります [name => '李思'、age => 19]。

4. PHP の 2 次元の数値の組み合わせで重複が削除されない問題の解決策

PHP の 2 次元の数値の組み合わせで重複が削除されない問題を解決するには、次のようにします。 array_unique() 関数。この関数を使用すると、配列から重複要素を削除し、重複しない新しい配列を返すことができます。

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

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);
$students = array_unique($students, SORT_REGULAR);

print_r($students);
ログイン後にコピー

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

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
ログイン後にコピー

array_unique() 関数を使用すると、マージされた配列を簡単にマージできることがわかります。 . 最後に、重複要素のない配列を取得します。

5. まとめ

この記事では、重複排除を行わない PHP の 2 次元数値結合の問題と解決策を紹介します。 array_merge() 関数 配列をマージしますが、2 次元配列の場合、マージは自動的に重複を除去しません。重複のない新しい配列を取得するには、array_unique() 関数を使用して重複を除去する必要があります。

以上がPHP の 2 次元数値の組み合わせでは重複が削除されませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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