0

今、私はリターン関数を持っています:

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

私の問題は、特定のキーが一方では小文字、他方では大文字になる可能性があることです。

たとえば、$sizes で「サムネイル」を取得し、$custom_sizes で「サムネイル」を取得できます。この場合、もちろん削除したいと思います。

(名前の場合も同じです:

スターウォーズ」vr. 「スターウォーズ」vr. 「スターウォーズ」vr. 「スターウォーズ」)

array_unique() を大文字と小文字を区別しないようにするにはどうすればよいですか?

編集I:コメントに続いて、明確化:

また、保持するバージョンを選択できるようにしたいと思います(最初の配列からのもの、または2番目の配列からのもの..)

4

1 に答える 1

1

Google で最初にヒットしたのは、以下を提供する 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 に答える