Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组\u对于重新排列的值是唯一的_Php - Fatal编程技术网

Php 数组\u对于重新排列的值是唯一的

Php 数组\u对于重新排列的值是唯一的,php,Php,这是我的阵列 $input = array("ASTY","PLO","KNGO","c","LOP","OPL","HONGO","TSAY"); 这里, ASTY,TSAY=包含相同的字母。我需要保留第一个 PLO、LOP、OPL=包含相同的字母。我需要保留第一个 那么,我想要的输出数组 $output = array("ASTY","PLO","KNGO","c","HONGO"); 是否有任何内置函数来执行此操作? array\u unique适用于未重新排列的单词。要在这种情况下比

这是我的阵列

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

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

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

那么,我想要的输出数组

$output = array("ASTY","PLO","KNGO","c","HONGO");
是否有任何内置函数来执行此操作?
array\u unique适用于未重新排列的单词。

要在这种情况下比较任意两个值是否相等,只需对字母排序并比较排序后的值即可。要消除阵列中的重复数据,请使用阵列键是唯一的这一事实:

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

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

要在这种情况下比较任意两个值是否相等,只需对字母排序并比较排序后的值。要消除阵列中的重复数据,请使用阵列键是唯一的这一事实:

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

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

棒 极 了非常感谢。这将返回所有相同组合字符串的最后一次出现;在上面的示例中,它将返回“TSAY”和“OPL”,而OP希望保留第一个事件。在将其分配给
$unique
@Irvin之前,您可能需要使用
数组\u key\u exists
,如果这真的很重要,修复非常简单……)棒 极 了非常感谢。这将返回所有相同组合字符串的最后一次出现;在上面的示例中,它将返回“TSAY”和“OPL”,而OP希望保留第一个事件。在将其分配给
$unique
@Irvin之前,您可能需要使用
数组\u key\u exists
,如果这真的很重要,修复非常简单……)