array_unique用于重新排列的值

Asi*_*bal 0 php

这是我的阵列

$input = array("ASTY","PLO","KNGO","c","LOP","OPL","HONGO","TSAY");
Run Code Online (Sandbox Code Playgroud)

这里,

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

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

所以,我想要的输出数组

$output = array("ASTY","PLO","KNGO","c","HONGO");
Run Code Online (Sandbox Code Playgroud)

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

dec*_*eze 6

比较任意两个值是否在这种情况下相等,则只需订购字母和比较有序值.要对数组进行重复数据删除,请使用数组键唯一的事实:

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

// optionally:
$unique = array_values($unique);
Run Code Online (Sandbox Code Playgroud)