PHP array_unique排序行为



我正在检查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没有排序。如有任何帮助,不胜感激。

谢谢帕拉

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);

手册没有说它会对数组元素进行排序,它说sort_flags参数修改了排序行为。

第二个可选参数sort_flags可用于修改使用这些值的排序行为:[…]

排序行为用于对数组值进行排序,以便执行比较并确定一个元素是否被认为与另一个元素相等。它不修改基础数组的顺序。

如果你想排序你的数组,你必须做一个单独的操作。关于数组排序的文档可以在这里找到。

对于基于数组值的默认升序排序,您可以使用asort

array_unique接受一个输入数组并返回一个没有重复值的新数组。它实际上没有排序。详见http://php.net/manual/en/function.array-unique.php

相关内容

  • 没有找到相关文章

最新更新