ホームページ >バックエンド開発 >PHPの問題 >PHPで2次元配列内の同じ要素を削除する方法

PHPで2次元配列内の同じ要素を削除する方法

PHPz
PHPzオリジナル
2023-04-26 09:09:26995ブラウズ

PHP プログラミングでは、2 桁の配列を操作する必要がある状況によく遭遇します。場合によっては、データを一意に保つために同一の要素を削除する必要があります。この記事では、2桁の配列の同一要素を削除する方法を紹介します。

1. 2 桁の配列とは

2 桁の配列 (「多次元配列」または「配列の配列」とも呼ばれます) は、他の配列を含むデータ構造です。 。 PHP では通常、データの保存と操作に配列を使用します。 2 桁の配列は、各要素が配列である特別なタイプの配列です。 2 桁の配列の要素には、2 つ以上の添字を使用してアクセスできます。たとえば、次のようになります。

$students = array(
  array("name"=>"张三", "age"=>18, "score"=>89),
  array("name"=>"李四", "age"=>22, "score"=>76),
  array("name"=>"王五", "age"=>20, "score"=>94)
);

上記のコードは、3 つの要素を含む 2 桁の配列を作成します。各要素は、3 つのキーの配列を含みます。 -値のペア。添え字を使用して、2 桁の配列内の要素にアクセスできます (例:

echo $students[0]["name"]; // 输出 张三
echo $students[1]["score"]; // 输出 76
echo $students[2]["age"]; // 输出 20

2. 2 桁の配列内の同じ要素を削除する方法

場合によっては、 2 桁の配列には同じ要素が含まれます。たとえば、同じ生徒情報を異なるデータ ソースから取得する場合、生徒データが重複する場合があります。この場合、データを一意に保つために重複した要素を削除する必要があります。

PHP には、配列内の重複要素を削除するための関数 array_unique() が用意されています。ただし、この関数を 2 桁の配列に使用しても、目的を達成できません。 array_unique() この関数は、1 次元配列内の重複要素のみを削除できますが、多次元配列内の重複要素は削除できません。

したがって、2 桁の配列内の重複要素を削除する独自のコードを作成する必要があります。ループを使用して 2 桁の配列内の各要素を反復処理し、各ステップで現在の要素を前の要素と比較して同じかどうかを確認できます。それらが同じである場合は、現在の要素を削除します。コードの実装は次のとおりです。

function removeDuplicateElements($array){
    $result = array();
    foreach ($array as $key => $value) {
        foreach ($result as $key2 => $value2) {
            if ($value == $value2) {
                unset($array[$key]);
            }
        }
        $result[] = $value;
    }
    return $result;
}

上記のコードでは、removeDuplicateElements() という名前の関数を作成しました。この関数は、パラメータとして 2 桁の配列を受け取り、重複要素の削除を返します。 2 桁の配列から。

関数は、配列を走査するために内部的に 2 つの foreach ループを使用します。最初のループは、2 桁の配列内の各要素を走査するために使用されます。各ステップで、2 番目のループを使用して結果配列 $result に追加された要素を反復し、現在の要素を前の要素と比較します。

現在の要素が前の要素と同じ場合は、unset() 関数を使用して現在の要素を削除します。 unset() この関数は、指定された変数を破棄するために使用されます。ここでは、配列から指定された要素を削除するために使用されます。現在の要素が前の要素と同じでない場合、現在の要素が結果の配列に追加されます。

3. テストとアプリケーション

removeDuplicateElements() 関数の有効性をテストするテスト関数を作成できます。テスト関数のコードは次のとおりです。

function testRemoveDuplicateElements(){
    $students = array(
      array("name"=>"张三", "age"=>18, "score"=>89),
      array("name"=>"李四", "age"=>22, "score"=>76),
      array("name"=>"王五", "age"=>20, "score"=>94),
      array("name"=>"张三", "age"=>18, "score"=>89),
      array("name"=>"李四", "age"=>22, "score"=>76)
    );

    $result = removeDuplicateElements($students);
    print_r($result);
}

上記のコードでは、5 つの要素を含む 2 桁の配列を作成し、そのうちの 2 つが繰り返されます。次に、removeDuplicateElements() 関数を呼び出して重複要素を削除し、結果を出力します。

テスト関数を実行すると、重複した要素が削除された、3 つの要素を含む 2 桁の配列が出力されます。

この記事では、2 桁の配列内の同一の要素を削除する方法について説明します。ループを使用して配列を反復処理し、各要素を比較して前の要素と同じかどうかを確認します。それらが同じである場合は、現在の要素を削除します。このようにして、2 桁の配列内の重複要素を簡単に削除して、データを一意に保つことができます。

以上がPHPで2次元配列内の同じ要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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