我正在检查array_unique函数。手册说它也会对值进行排序。但我无法看到它正在对值进行排序。请参阅我的示例代码。
$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input,SORT_STRING);
print_r($result);
The output is
Array
(
[a] => green
[3] => red
[b] => green
[1] => blue
[4] => red
)
Array
(
[a] => green
[3] => red
[1] => blue
)
此处数组$ result未排序。任何帮助表示赞赏。
谢谢 普拉莫德
答案 0 :(得分:6)
array_unique:
获取一个输入数组并返回一个没有重复值的新数组。
请注意,密钥会被保留。 array_unique()首先对作为字符串处理的值进行排序,然后保留每个值遇到的第一个键,并忽略所有后续键。
你可以试试这个来得到结果:
<?php
$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input);
print_r($result);
asort($result);
print_r($result);
答案 1 :(得分:4)
manual并没有说它会对数组元素进行排序,它表示sort_flags
参数会修改排序行为。
可选的第二个参数sort_flags可用于修改 使用这些值排序行为:[...]
排序行为用于对数组值进行排序,以便执行比较并确定是否将一个元素视为与另一个元素相等。它不会修改底层数组的顺序。
如果要对数组进行排序,则必须将其作为单独的操作进行排序。有关数组排序的文档可以找到here。
对于基于数组值的默认升序排序,您可以使用asort
。
答案 2 :(得分:1)
array_unique
接受一个输入数组并返回一个没有重复值的新数组。它实际上并没有排序。阅读更多http://php.net/manual/en/function.array-unique.php