2013-11-10 4 views
0

Я хотел бы написать функцию, которая находит совпадения всех элементов в одномерном неассоциативном массиве и полностью удаляет эти элементы из другого одномерного не- -ассоциативный массив, включая индекс. Ниже приведен пример.Как удалить элементы массива, которые соответствуют элементам в другом массиве

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

Как я могу это достичь? Обратите внимание, что могут быть элементы, которые сопоставляются более одного раза (зеленый), и также возможно, что нет элементов, которые соответствуют конкретному, который нужно удалить (белый). У функции не должно быть проблем с этими непредвиденными обстоятельствами.

+1

1 минута в руководстве все, что вам нужно –

+0

я * подумал * существует функция, которая делает это, но я не могу вспомнить который из. – Armin

+0

http://www.php.net/ru/array_diff –

ответ

2

Try 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 
) 
Смежные вопросы