Удалить элементы из array1, которые находятся в array2

#php #arrays

#php #массивы

Вопрос:

У меня есть массивы, которые выглядят следующим образом:

 $array1 = array(
    'peter@example.com' => array(
        'peter' => 'Smith',
    ),
    'john@example.com' => array(
        'john' => 'Smith',
    ),
    'louis@example.com' => array(
        'louis' => 'Smith',
    ),
    'jane@example.com' => array(
        'jane' => 'Smith',
    ),
);


$array2 = array(
    '0' => 'peter@example.com',
    '1' => 'john@example.com',
);
  

Как мне удалить элементы массива в array1, которые соответствуют array2?

Ответ №1:

Так просто, как:

 $diff = array_diff_key($array1, array_flip($array2));
  

Комментарии:

1. Если бы я увидел этот ответ, я не должен был отвечать на этот вопрос (:

Ответ №2:

Быстро и просто (но не так быстро и просто, как метод deceze, lol)

 foreach ($array1 as $key => $value) {
    for ($i = 0; $i < count($array2); $i  ) {
        if ($key == $array2[$i]) {
            unset($array1[$key]);
        }
    }
}