ホームページ >バックエンド開発 >PHPの問題 >PHP配列は重複を除外します

PHP配列は重複を除外します

WBOY
WBOYオリジナル
2023-05-06 13:23:07526ブラウズ

PHP では、配列操作を処理する必要があることがよくあり、配列内に削除する必要がある重複要素が存在する場合があります。この記事では、PHP 配列の重複を排除するために一般的に使用されるいくつかの方法を紹介します。

  1. array_unique() 関数の使用

array_unique() 関数は、重複値のない新しい配列を返すことができます。

サンプル コード:

$arr = array("apple", "banana", "cherry", "apple", "banana");
$new_arr = array_unique($arr);
print_r($new_arr);

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
  1. ループ トラバーサルを使用して重複を除外する

重複を除外する別の方法ループを使用して配列を反復処理し、in_array() 関数を使用して各値が新しい配列にすでに存在するかどうかを確認します。存在しない場合は、新しい配列に追加します。

サンプルコード:

$arr = array("apple", "banana", "cherry", "apple", "banana");
$new_arr = array();

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

print_r($new_arr);

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)
  1. array_filter()関数の使用

array_filter()関数が使用可能配列内のすべての null 値を削除します。コールバック関数を使用すると、指定した条件に基づいて配列の値をフィルタリングできます。

サンプルコード:

$arr = array("apple", "banana", "cherry", "", "banana");
$new_arr = array_filter($arr);

print_r($new_arr);

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
    [4] => banana
)

重複する要素を除外したい場合は、コールバック関数を使用してフィルタリングできます。

サンプル コード:

$arr = array("apple", "banana", "cherry", "apple", "banana");
$new_arr = array_filter($arr, function ($value, $key) use ($arr) {
    return array_search($value, $arr) === $key;
}, ARRAY_FILTER_USE_BOTH);

print_r($new_arr);

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

ここのコールバック関数は、値のインデックスが配列内のインデックスと等しいかどうかを確認し、等しい場合は、値は一意です。

  1. array_keys() 関数と array_values() 関数の使用

重複を除外するもう 1 つの方法は、array_keys() 関数を使用して配列内の一意のキーを取得し、 array_values () 関数を使用すると、対応する値が取得されます。

サンプルコード:

$arr = array("apple", "banana", "cherry", "apple", "banana");
$new_arr = array_values(array_unique(array_keys($arr, true)));

print_r($new_arr);

出力結果:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)

ここで返されるのはキーの配列であり、array_map を使用して値の配列に変換できます。 () 関数。

サンプルコード:

$arr = array("apple", "banana", "cherry", "apple", "banana");
$new_arr = array_map(function ($key) use ($arr) {
    return $arr[$key];
}, array_values(array_unique(array_keys($arr, true))));

print_r($new_arr);

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

上記は、PHP で配列の重複を排除するいくつかの方法です。それぞれの方法には異なる利点と欠点があります。特定のアプリケーションシナリオに応じて適切な方法を選択してください。

以上がPHP配列は重複を除外しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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