从不区分大小写的数组中删除重复值的最佳解决方案

Cyb*_*kie 5 php arrays function array-unique

我找到了一些解决方案,但我无法决定使用哪种解决方案.array_unique()在不区分大小写的数组上使用php 函数的最紧凑有效的解决方案是什么?

例:

$input = array('green', 'Green', 'blue', 'yellow', 'blue');
$result = array_unique($input);
print_r($result);
Run Code Online (Sandbox Code Playgroud)

结果:

Array ( [0] => green [1] => Green [2] => blue [3] => yellow )

我们如何删除副本green?至于要删除哪一个,我们假设具有大写字符的重复是正确的.

例如,保持PHP删除php

或保持PHP删除,Php因为PHP有更多的大写字符.

结果将是

Array ( [0] => Green [1] => blue [2] => yellow )

请注意,已保留带大写的绿色.

Ali*_*xel 13

这会有用吗?

$r = array_intersect_key($input, array_unique(array_map('strtolower', $input)));
Run Code Online (Sandbox Code Playgroud)

不关心要保留但具体工作的具体情况,您也可以尝试asort($input);在交叉之前调用以保持大写值(在IDEOne.com上演示).