【问题标题】:How to remove duplicate from an Array and sort it? [duplicate]如何从数组中删除重复项并对其进行排序? [复制]
【发布时间】: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()方法

标签: php arrays sorting


【解决方案1】:

如果你有:

$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 分配给 asort 的结果将始终让您在 $a 中留下 true 而不是排序数组。
  • @scagar:你说得对,我修好了 :)
【解决方案2】:

//试试这个...

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

【讨论】:

【解决方案3】:

第一步:扁平化

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

来源: How to Flatten a Multidimensional Array?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2014-04-29
    • 2021-12-18
    • 1970-01-01
    • 2013-12-03
    • 2022-01-03
    • 2021-11-20
    • 2021-11-19
    相关资源
    最近更新 更多