在 php 中,使用 array_unique() 函數,根據特定鍵值對去除數組重復項。調用函數時傳入數組作為參數,選擇排序方式作為第二個參數。此函數返回一個新數組,其中重復項已根據指定的鍵值對被移除。
如何在 PHP 中根據特定鍵值對去除數組中的重復項
在 PHP 中,使用 array_unique() 函數可以根據特定鍵值對去除數組中的重復項。該函數接收一個數組作為參數,并返回一個新數組,其中重復項已根據指定的鍵值對被移除。
用法:
$array = [
['name' => 'John', 'age' => 30],
['name' => 'Mary', 'age' => 25],
['name' => 'John', 'age' => 30],
['name' => 'Bob', 'age' => 20],
];
$uniqueArray = array_unique($array, SORT_REGULAR);
print_r($uniqueArray);
登錄后復制
輸出:
Array
(
[0] => Array
(
[name] => John
[age] => 30
)
[1] => Array
(
[name] => Mary
[age] => 25
)
[2] => Array
(
[name] => Bob
[age] => 20
)
)
登錄后復制
如上所示,array_unique() 根據鍵值對 ['name', 'age'] 去除了數組中的重復項。
可選參數:
array_unique() 函數的第二個參數指定如何比較數組元素,有以下選項:
SORT_REGULAR: 正常比較元素SORT_NUMERIC: 比較元素作為數字SORT_STRING: 比較元素作為字符串SORT_LOCALE_STRING: 以特定區域設置比較元素作為字符串
實戰案例:
假設你有以下數組,其中包含來自不同訂單的訂單項:
$orders = [
['id' => 1, 'item_id' => 1, 'quantity' => 2],
['id' => 2, 'item_id' => 2, 'quantity' => 1],
['id' => 3, 'item_id' => 1, 'quantity' => 3],
];
登錄后復制
你可以使用以下代碼根據訂單項ID (item_id) 和數量 (quantity) 去除重復項:
$uniqueOrders = array_unique($orders, SORT_REGULAR);
登錄后復制
這將創建一個新數組 $uniqueOrders,其中每個訂單項的 item_id 和 quantity 組合都是唯一的。






