array_unique用于重新排列的值

时间:2016-06-08 10:21:02

标签: php

这是我的数组

$input = array("ASTY","PLO","KNGO","c","LOP","OPL","HONGO","TSAY");

这里,

ASTY,TSAY =包含相同的字母。我需要保留第一个。

PLO,LOP,OPL =包含相同的字母。我需要保留第一个。

所以,我想要的输出数组

$output = array("ASTY","PLO","KNGO","c","HONGO");

有没有内置函数可以做到这一点? array_unique适用于非重新排列的单词。

1 个答案:

答案 0 :(得分:6)

要比较在这种情况下任何两个值是否相等,您只需订购字母并比较有序值。要重复数据删除数组,请使用数组键唯一的事实:

$unique = [];
foreach ($input as $word) {
    $key = str_split($word);
    sort($key);
    $unique[join($key)] = $word;
}

// optionally:
$unique = array_values($unique);