مشكلة مع 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