PHP 配列の重複排除時に重複要素を削除するための基準を指定する

WBOY
リリース: 2024-04-28 22:48:02
オリジナル
834 人が閲覧しました

PHP の array_unique() 関数は、配列から重複要素を削除するために使用され、そのデフォルトの使用法は完全等価 (===) です。カスタム比較関数を使用して重複排除の基準を指定できます。カスタム比較関数を作成し、重複排除の標準を指定します (たとえば、要素の長さに基づいて)。カスタム比較関数を 3 番目のパラメーターとして array_unique() 関数に渡します。指定された基準に基づいて要素を複製します。

PHP 数组去重时指定去除重复元素的依据

PHP array_unique() 関数を使用して重複排除の基礎を指定します

はじめに

_unique() 関数は、配列から重複した要素を削除するために使用されます。デフォルトでは、厳密な等価性 (===) を使用して重複要素を判別します。ただし、重複排除の基準を指定するカスタム比較関数を提供することで、さまざまな基準に基づいて重複要素を削除できます。

コード例

<?php

// 创建一个包含重复元素的数组
$arr = array(
    'a', 'b', 'c', 'd',
    'a', 'c', 'e', 'f'
);

// 使用默认的严格相等比较器去除重复元素
print_r(array_unique($arr));

// 自定比较器,根据元素长度去除重复元素
$length_comparator = function($a, $b) {
    return strlen($a) == strlen($b);
};

// 使用自定比较器去除重复元素
print_r(array_unique($arr, SORT_REGULAR, $length_comparator));

?>
ログイン後にコピー

出力結果

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [6] => e
)
ログイン後にコピー

実際のケース

学生オブジェクトの配列があり、各オブジェクトには名前と年齢があるとします。 _unique() 関数とカスタム コンパレータを使用して、同じ年齢の生徒を削除できます:

<?php

class Student {
    public $name;
    public $age;
}

// 创建一个包含具有相同年龄的学生对象的数组
$students = array(
    new Student('Alice', 20),
    new Student('Bob', 20),
    new Student('Carol', 21),
    new Student('Dave', 21),
);

// 自定比较器,根据学生的年龄去除重复元素
$age_comparator = function($a, $b) {
    return $a->age == $b->age;
};

// 使用自定比较器去除重复元素
$unique_students = array_unique($students, SORT_REGULAR, $age_comparator);

// 打印唯一学生的姓名
foreach ($unique_students as $student) {
    echo $student->name . '<br>';
}

?>
ログイン後にコピー

出力結果

Alice
Carol
ログイン後にコピー

以上がPHP 配列の重複排除時に重複要素を削除するための基準を指定するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!