Вместо того, чтобы манипулировать содержимым массива, он создает ключ к массиву (аналогично тому, как вы манипулируете основным массивом), а затем, когда вы комбинируете ключ с данными (используя array_combine()
), дубликатыудаляются (поскольку в результате может существовать только 1 ключ) ...
$arr = [
['id' => 1, 'term' => 'Hello'],
['id' => 1, 'term' => 'hello'],
['id' => 1, 'term' => 'Hello'],
['id' => 2, 'term' => 'Hello']
];
$key = array_map("serialize", $arr);
$key = array_map("strtolower", $key);
$new = array_combine($key, $arr);
print_r(array_values($new));
дает ...
Array
(
[0] => Array
(
[id] => 1
[term] => Hello
)
[1] => Array
(
[id] => 2
[term] => Hello
)
)
Для вертикально поставленных задач его можно заключить в 1 (хотя и менее читабельная) строка ...
$new = array_values(array_combine(array_map("strtolower", array_map("serialize", $arr)), $arr));