PHP - Как сравнить два массива и удалить повторяющиеся значения

Так вот что меня беспокоит.

У меня есть два массива:

$array1 = array('[param1]' ,'demo' ,'[param2]' ,'some' ,'[param3]');
$array2 = array('value1'   ,'demo' ,'value2'   ,'some' ,'value3');

Теперь я хочу сравнить эти два массива и удалить все повторяющиеся значения.
В конце мне нужны эти два массива, но без «демонстрационных» и «некоторых» значений в них.
Я хочу удалить все значения из массивов, которые имеют одинаковый индексный ключ и значение.
Массивы всегда будут иметь одинаковое количество значений и индексов, я хочу только сравнить их и удалить записи с одним и тем же ключом индекса и значением из них обоих.

Я сейчас делаю что-то вроде этого:

$clean1 = array();
$clean2 = array();    

foreach($array1 as $key => $value)
{
    if($value !== $array2[$key])
    {
        $clean1[$key] = $value;
        $clean2[$key] = $array2[$key];
    }
}

var_export($clean1);
echo "<br />";
var_export($clean2);

И это работает! Но мне интересно, есть ли другой способ сделать это? Может быть, без использования цикла foreach? Есть ли более элегантный способ сделать это?

19
задан Joseph Silber 1 January 2012 в 01:11
поделиться