0

现在,我有一个返回函数:

return array_unique(array_merge( $sizes, $custom_sizes ));

我的问题是某个键在一个中可以是小写,在另一个中可以是大写。

例如,我可以在 $sizes中获得“ Thumbnails ”,在 $custom_sizes 中获得“ thumbnails ”——在这种情况下,我当然想删除一个。

(名称相同:

星球大战”vr。“星球大战”vr。“星球大战”vr。“星球大战”)

如何使 array_unique() 不区分大小写?

编辑我:以下评论,澄清:

我还希望能够选择要保留的版本(第一个数组中的那个,或者第二个数组中的那个..)

4

1 回答 1

1

谷歌上的第一个热门是 PHP.net 页面,它提供:

function in_iarray($str, $a){
    foreach($a as $v){
        if(strcasecmp($str, $v)==0){return true;}
    }
    return false;
}

function array_iunique($a){
    $n = array();
    foreach($a as $k=>$v){
        if(!in_iarray($v, $n)){$n[$k]=$v;}
    }
    return $n;
}

$input = array("aAa","bBb","cCc","AaA","ccC","ccc","CCC","bBB","AAA","XXX");
$result = array_iunique($input);
print_r($result);

/*
Array
(
    [0] => aAa
    [1] => bBb
    [2] => cCc
    [9] => XXX
)
*/
于 2012-06-03T08:04:19.077 回答