0

1 次元の非連想配列内のすべての要素の一致を検索し、インデックスを含む別の 1 次元の非連想配列からそれらの要素を完全に削除する関数を書きたいと思います。以下に例を示します。

<?php

function magicfunc($colors, $remove) {
    // some magic here
}

EXAMPLE:

$colors = array(
                'red',
                'green',
                'blue',
                'purple',
                'green',
                'yellow',
                'pink',
                'orange'
            );
$remove = array(
                'green',
                'white',
                'pink'
            );
magicfunc($colors, $remove);

WOULD RETURN:
Array
(
    [0] => red
    [1] => blue
    [2] => purple
    [3] => yellow
    [4] => orange
)

どうすればこれを達成できますか?2 回以上一致する要素 (緑) が存在する可能性があることに注意してください。また、特定の要素に一致する要素が削除されない (白) 可能性もあります。関数には、これらの不測の事態に関する問題があってはなりません。

4

1 に答える 1

2

array_diff を試してください: http://us3.php.net/array_diff

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

結果:

Array
(
    [1] => blue
)
于 2013-11-10T20:49:00.623 に答える