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