Ärger mit array_unique
-
27-09-2019 - |
Frage
print_r($tokens);
$tokens = array_unique($tokens);
print_r($tokens);
Gibt die folgende Ausgabe:
Array
(
[0] => Array
(
[Class_ID] => 32709
)
[1] => Array
(
[Class_ID] => 34682
)
[2] => Array
(
[Class_ID] => 34818
)
)
Array
(
[0] => Array
(
[Class_ID] => 32709
)
)
Ich will nicht, dass es etwas sein Wechsel mit diesem array_unique, da die CLASS_ID Werte unterschiedlich sind .. whats up?
Lösung 2
Gefunden eine Funktion von php.net, die array_unique auf multidimensionalen Arrays tut:
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;
}
Andere Tipps
Hinweis: Zwei Elemente werden als gleich betrachtet, wenn und nur wenn
(string) $elem1 === (string) $elem2
In Worten: Wenn die String-Darstellung ist das gleiche. Das erste Element verwendet werden.
Alle Ihre Elemente toString
Array
sind.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow