PHP 的 array_unique() 函數用於移除陣列中重複元素,其預設使用嚴格相等 (===)。我們可以透過自定比較函數來指定去重依據:建立自定比較函數,指定去重的標準(例如根據元素長度);將自訂比較函數作為第三個參數傳遞給array_unique() 函數,即可根據指定的標準移除重複元素。
使用PHP 陣列_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中文網其他相關文章!