ホームページ > バックエンド開発 > PHPの問題 > PHPで同じ値を持つ配列を削除する方法

PHPで同じ値を持つ配列を削除する方法

PHPz
リリース: 2023-04-24 15:57:00
オリジナル
633 人が閲覧しました

PHP 開発では、配列の処理が一般的なタスクです。ただし、配列内に重複した要素がある場合は、何らかの方法を使用して重複を削除する必要があります。この記事では、PHP を使用して同じ値を持つ配列を削除する方法を説明します。

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

array_unique() 関数は、同一の要素を簡単に削除できる PHP 独自の重複排除関数です。その構文は次のとおりです:

array array_unique(array $array [, int $sort_flags = SORT_STRING ])
ログイン後にコピー

パラメータの説明:

  • $array (必須): 重複を削除する配列。
  • $sort_flags (オプション): 配列のソート方法を示すオプションのパラメーター。デフォルトは SORT_STRING で、文字列で比較します。

使用方法は次のとおりです。

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array_unique($originalArray);
print_r($uniqueArray);

// 输出
// Array
// (
//     [0] => a
//     [1] => b
//     [2] => c
// )
ログイン後にコピー

array_unique() 関数を使用すると、配列内の重複要素を簡単に削除し、重複しない要素を保持できることがわかります。

  1. ループを使用して重複を削除する

array_unique() 関数に加えて、ループを使用して重複を削除することもできます。プロセス全体は次のようになります。元の配列を反復処理し、各要素を比較し、同じ要素が見つかった場合はフィルターで除外します。

具体的なオペレーション コードは次のとおりです:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array();

foreach($originalArray as $value){
    if(!in_array($value, $uniqueArray)){
        $uniqueArray[] = $value;
    }
}

print_r($uniqueArray);

// 输出
// Array
// (
//     [0] => a
//     [1] => b
//     [2] => c
// )
ログイン後にコピー

このメソッドは配列全体を走査する必要があります。配列が大きい場合、効率は array_unique() 関数ほど良くありません。

  1. array_flip() 関数と array_keys() 関数を使用する

このメソッドを使用するには、まず配列の値とキーを交換するステップを実行する必要があります。元の配列をキーとして値、値としてキーを持つ新しい配列に変換します。これは、array_flip() 関数を使用して実現できます。

次に、array_keys() 関数を使用して、新しい配列のすべてのキー、つまり重複しない要素を取得できます。具体的なコードは次のとおりです。

$originalArray = array('a', 'b', 'c', 'a', 'b');
$newArray = array_flip($originalArray);
$uniqueArray = array_keys($newArray);

print_r($uniqueArray);

// 输出
// Array
// (
//     [0] => a
//     [1] => b
//     [2] => c
// )
ログイン後にコピー

この方法を使用すると、元の配列が大きい場合でも、効率が非常に高くなります。

まとめると、PHP では同じ値を持つ配列を削除する方法は数多くあり、実際の状況に応じてどの方法を使用するかを選択できます。もちろん、配列要素がオブジェクトなどの複合型の場合、array_unique() 関数は機能しない可能性がありますが、その場合はカスタム比較関数などの方法で重複排除を実現できます。

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

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