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

PHP で 2 次元配列から重複を削除する方法

PHPz
リリース: 2023-04-23 16:57:25
オリジナル
2829 人が閲覧しました

PHP プログラミングを使用する場合、多くの場合、2 次元配列の操作が必要になります。場合によっては、2 次元配列の重複排除、つまり重複した項目を削除する必要があります。この記事では、PHP で 2 次元配列を重複排除する方法を紹介します。

1. array_unique 関数を使用する

array_unique 関数は、配列内の重複した値を削除し、重複した値のない新しい配列を返すことができます。ただし、array_unique 関数を直接使用して 2 次元配列を重複排除することはできません。

array_walk 関数を使用して配列を走査し、各要素内で array_unique 関数を使用して重複を削除できます。サンプル コードは次のとおりです。

function array_unique_key($arr,$key){
    $tmp_arr=array();
    foreach($arr as $k => $v){
        if(in_array($v[$key],$tmp_arr)){   //判断是否重复
            unset($arr[$k]);   //重复则删除
        }else{
            $tmp_arr[]=$v[$key];  //将值存储在临时数组中
        }
    }
    return $arr;
}
ログイン後にコピー

上記のコードでは、$arr は重複排除が必要な 2 次元配列、$key は指定されたキー名 (つまり、重複排除される要素)、関数は重複排除後の新しい配列を返します。

2.カスタム関数

を使用して、重複排除ロジックを自分で実装します。次のコード例では、ループを使用して重複排除を実装しています。

function array_unique_key($arr,$key){
    $temp_array = array();
    foreach ($arr as $k => $v){
        if (!in_array($v[$key], $temp_array)){
            array_push($temp_array, $v[$key]);
            $temp_arr[] = $v;
        }
    }
    return $temp_arr;
}
ログイン後にコピー

上記のコードでは、$arr は重複排除する必要がある 2 次元配列で、$key は指定されたキー名 (つまり、要素) です。重複排除キー名に対応する)、この関数は重複排除後の新しい配列を返します。

3. array_reduce 関数を使用する

array_reduce 関数は、配列の各要素を反復処理して、縮小された単一の値を返すことができます。

この関数を使用して、2 次元配列の重複排除を実現できます。

コードは次のとおりです:

function array_unique_key($arr,$key){
    return array_reduce($arr, function($carry, $item) use ($key) {
        if(!in_array($item[$key], array_column($carry, $key))) {
            $carry[] = $item;
        }
        return $carry;
    }, []);
}
ログイン後にコピー

上記のコードでは、$arr は重複排除する必要がある 2 次元配列で、$key は指定されたキー名 (つまり、重複排除する要素に対応するキー名))、この関数は重複排除後の新しい配列を返します。

4. カスタム関数を PHP の組み込み関数と組み合わせて使用​​する

次のコードは、PHP の組み込み関数 array_map、array_flip、および array_values を組み合わせて、2 次元配列を重複排除する関数を実装します。

function array_unique_key($arr,$key){
   return array_values(array_flip(array_map(function($item) use($key){
        return json_encode($item[$key]);
   }, $arr)));
}
ログイン後にコピー

上記のコードでは、$arr は重複排除する必要がある 2 次元配列で、$key は指定されたキー名 (つまり、要素に対応するキー名) です。この関数は、重複排除後の新しい値を返します。

まとめ

以上は、PHP で 2 次元配列を重複排除するためのいくつかの方法であり、array_unique、カスタム関数を使用する方法、および PHP 組み込み関数の array_map、array_flip、および Array_flip を組み合わせる方法を大まかに紹介しています。 array_reduce。アプリケーションシナリオが異なれば使用する方法も異なり、プログラマは特定の状況に応じて選択できます。

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

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