您需要使函数不区分大小写,以获取所需的“ Hello” =>“ hello”结果,请尝试以下方法:
$arr = array(1=>'1233',2=>'12334',3 =>'Hello' ,4=>'hello', 5=>'U');// Convert every value to uppercase, and remove duplicate values$withoutDuplicates = array_unique(array_map("strtoupper", $arr));// The difference in the original array, and the $withoutDuplicates array// will be the duplicate values$duplicates = array_diff($arr, $withoutDuplicates);print_r($duplicates);输出为:
Array([3] => Hello[4] => hello)
通过@AlixAxel编辑:
这个答案很有误导性。它仅在此特定条件下有效。这个反例:
$arr = array(1=>'1233',2=>'12334',3 =>'Hello' ,4=>'HELLO', 5=>'U');
惨败 。另外,这不是保留重复项的方法:
array_diff($arr, array_unique($arr));
由于重复的值之一将在中
array_unique,然后被斩波
array_diff。
通过@RyanDay编辑:
因此,请查看@Srikanth或@Bucabay的答案,这些答案适用于所有情况(查找Bucabay的大小写不敏感),而不仅仅是问题中指定的测试数据。



