当使用array_unique()
函数时,如果数组中包含非数组元素,该函数可能无法正常工作。这是因为array_unique()
函数只能删除数组中重复的值,而不能删除非数组元素。
解决这个问题的方法是在使用array_unique()
函数之前,先将非数组元素从数组中移除。可以使用array_filter()
函数来过滤数组,只保留数组元素。
以下是一个示例代码,展示了如何解决这个问题:
$array = [1, 2, 2, 'a', 'b', 'c'];
// 使用array_filter()函数过滤数组,只保留数组元素
$array = array_filter($array, 'is_array');
// 使用array_unique()函数去除重复值
$array = array_unique($array);
print_r($array);
在上面的代码中,我们首先使用array_filter()
函数过滤数组,只保留数组元素。is_array
函数用于判断元素是否为数组。然后,我们再使用array_unique()
函数去除重复值。
运行上面的代码,输出将是[1, 2]
,非数组元素'a', 'b', 'c'
已经被移除,并且重复的2
也被删除了。
希望这个解决方法可以帮助到你!