2015-05-09 55 views
4

得到区分大小写的返回我有两个数组,我需要比较它并返回array1中的匹配值。请参考我的代码如下,我怎么能从array_intersect()

$array1 = array("a" => "Green", "Red", "Blue"); 
$array2 = array("b" => "grEEn", "yellow", "red"); 
$result = array_intersect(array_map('strtolower', $array1), array_map('strtolower', $array2)); 

print_r($result); 

我的结果是,

Array 
(
    [a] => green 
    [0] => red 
) 

但是我预期的结果是我想从像阵列1得到它:

Array 
(
    [a] => Green 
    [0] => Red 
) 

回答

8

这是因为你把所有值转为小写。只要改变对array_uintersect()和使用strcasecmp()回调函数来比较它们不区分大小写的,就像这样:

$result = array_uintersect($array1, $array2, "strcasecmp"); 

输出:

Array ([a] => Green [0] => Red) 
+0

恰到好处..!这就是我要的。谢谢..! – Elavarasan

+0

@Elavarasan不客气! – Rizier123