4

2 つの配列があり、それを比較して、一致した値を array1 から返す必要があります。以下のコードを参照してください。

$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
)

しかし、私の予想される結果は、次のようにarray1から取得したいということです:

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

1 に答える 1

11

これは、すべての値を小文字にするためです。次のように、大文字と小文字を区別せずに比較するには、コールバック関数に変更しarray_uintersect()て使用するだけです。strcasecmp()

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

出力:

Array ( [a] => Green [0] => Red )
于 2015-05-09T09:21:58.280 に答える