【发布时间】:2014-11-05 05:25:59
【问题描述】:
我有数组 A:
输入:
A ={2,3,2,{1},3,2,{0},3,2,0,11,7,9,{2}}
我希望输出为数组 B
输出:
B={0,1,2,3,7,9,11}
如何删除重复值并使用 PHP 升序排序?
【问题讨论】:
-
使用
array_unique()方法
我有数组 A:
输入:
A ={2,3,2,{1},3,2,{0},3,2,0,11,7,9,{2}}
我希望输出为数组 B
输出:
B={0,1,2,3,7,9,11}
如何删除重复值并使用 PHP 升序排序?
【问题讨论】:
array_unique()方法
如果你有:
$a = array(2,3,2,1,3,2,0,3,2,0,11,7,9,2);
您可以使用array_unique() 删除重复项:
$a = array_unique($a);
然后使用asort()对数组值进行排序:
asort($a);
【讨论】:
asort 的结果将始终让您在 $a 中留下 true 而不是排序数组。
//试试这个...
$array = array(2,3,2,(1),3,2,(0),3,2,0,11,7,9,(2));
$array_u = array_unique($array);
sort($array_u);
print_r($array_u);
样本输出
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 7
[5] => 9
[6] => 11
)
【讨论】:
第一步:扁平化
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
然后使用asort 和array_unique 可以删除重复项并对升序进行排序。
$result = array_unique(flattern($array));
asort($result);
【讨论】: