ホームページ > バックエンド開発 > PHPの問題 > PHPで3次元配列から重複値を削除する方法(3つの方法)

PHPで3次元配列から重複値を削除する方法(3つの方法)

PHPz
リリース: 2023-04-12 11:33:30
オリジナル
905 人が閲覧しました

PHP は、Web 開発に広く使用されている非常に人気のあるプログラミング言語です。 PHP プログラムを作成する過程で、多次元配列 (複数配列とも呼ばれます) を処理する必要が生じることがよくあります。場合によっては、これらの配列に重複した要素が存在し、プログラムに問題が発生することがあります。この記事では、PHPで3次元配列から重複した値を削除する方法を紹介します。

  1. ループ走査メソッドを使用する

配列から重複する値を削除する最も一般的な方法は、ループを使用して配列内の各要素を走査することです。具体的な手順は次のとおりです。

  • 配列内の各要素を走査します
  • 要素が新しい配列にすでに存在するかどうかを確認します
  • 要素が存在しない場合は、次に、要素が新しい配列に追加されます。
  • 存在する場合、要素はスキップされます。

以下は、ループ トラバーサル メソッドを使用して重複値を削除するサンプル コードです。 3 次元配列の場合:

function array_unique_multidim($array){
    $unique_array = array();
    foreach($array as $key => $value){
        if(!in_array($value, $unique_array)){ 
            $unique_array[$key] = $value;
        }
    }
    return $unique_array;
}
ログイン後にコピー

このコードは、重複要素のない新しい配列を返します。このメソッドは複数の配列を再帰的に処理できます。ただし、この方法は低速であり、小さな配列の処理に適しています。

  1. array_unique() 関数を使用する

PHP の組み込みの array_unique() 関数は配列から重複した値を削除できますが、この関数は1次元配列に使用されます。多次元配列の場合は、まず 1 次元配列に変換してから、この関数を使用して重複を削除する必要があります。

以下は、array_unique() 関数を使用して配列から重複値を削除するサンプル コードです。

function array_unique_multidim($array){
    $flatten_array = array_reduce($array, 'array_merge', array());
    $unique_array = array_unique($flatten_array);
    foreach($unique_array as $key => $value){
        if(is_array($value)){ 
            $unique_array[$key] = array_unique_multidim($value);
        }
    }
    return $unique_array;
}
ログイン後にコピー

このコードは、重複要素のない新しい配列を返します。この方法はより高速かつ簡単で、大規模な配列の処理に適しています。

  1. 一意のインデックスを指定する

配列内で一意の値を表すインデックス キーがある場合は、そのキーを使用して重複する値を削除できます。具体的な手順は次のとおりです。

  • 配列内の各要素を走査します
  • 要素の一意のキーが新しい配列にすでに存在するかどうかを確認します
  • Ifが存在しない場合は、要素を新しい配列に追加します。
  • 存在する場合は、要素をスキップします。

以下は、次を使用して配列から重複する値を削除するサンプル コードです。一意のインデックス キー:

function array_unique_multidim($array, $key){
    $unique_array = array();
    foreach($array as $value){
        if(!array_key_exists($value[$key], $unique_array)){
            $unique_array[$value[$key]] = $value;
        }
    }
    return $unique_array;
}
ログイン後にコピー

このコードは、重複要素のない新しい配列を返します。この方法は高速であり、特定のキーを保持する必要がある配列の処理に適しています。

要約すると、これら 3 つの方法にはそれぞれ長所と短所があり、さまざまなニーズに応じて選択できます。小さい配列の場合は、ループ トラバーサル メソッドが適していますが、大きい配列の場合は、array_unique() 関数または一意のインデックス キーを指定するメソッドを使用できます。

以上がPHPで3次元配列から重複値を削除する方法(3つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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