Проблема с array_unique.
-
27-09-2019 - |
Вопрос
print_r($tokens);
$tokens = array_unique($tokens);
print_r($tokens);
Дает следующий вывод:
Array
(
[0] => Array
(
[Class_ID] => 32709
)
[1] => Array
(
[Class_ID] => 34682
)
[2] => Array
(
[Class_ID] => 34818
)
)
Array
(
[0] => Array
(
[Class_ID] => 32709
)
)
Я не хочу, чтобы это изменялось с этим Array_Unique, поскольку значения Class_id разные. Как дела?
Решение 2
Нашел функцию из php.net, которая делает Array_Unique на многомерных массивах:
function super_unique($array) //array unique for multi
{
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $key => $value)
{
if ( is_array($value) )
{
$result[$key] = super_unique($value);
}
}
return $result;
}
Другие советы
От документация:
Примечание: Два элемента считаются равными, если и только если
(string) $elem1 === (string) $elem2
В словах: когда строковое представление одинаково. Первый элемент будет использоваться.
Все ваши элементы toString
являются Array
.
Не связан с StackOverflow