Как сравнить два массива ключей и значений?

1

У меня есть два массива, где первые ключи массива похожи на значения второго массива. Я хотел бы получить новый массив со значениями, которые не находятся в первом. Я попытался использовать array_intersect, но результат не был тем, что я ожидал.

Вот пример двух массивов:

$array1 = array(
    'A' => 10,
    'B' => 20,
    'C' => 30,
    'D' => 40,
);
$array2 = array(
    '0' => 'A',
    '1' => 'B',
);

И я ищу новый массив вроде этого:

$array3 = array(
    '0' => 'C',
    '1' => 'D',
);
  • 1
    array_keys(array_diff_key($array1, array_flip($array2)))
Теги:
arrays

2 ответа

1
Лучший ответ

Вы можете использовать этот код:

$array1 = array('A' => 10,'B' => 20,'C' => 30,'D' => 40);
$array2 = array('0' => 'A','1' => 'B');
$array3 = array_keys(array_diff_key($array1, array_flip($array2)));
  • 0
    какова структура нового массива, если $ array2 пуст
  • 0
    Сначала вы должны проверить, не является ли $ array2 не пустым: if (! Empty ($ array2)) {...} или if (count ($ array2)) {...}
0

Мой совет - использовать array_diff, но проблема в том, что он не устанавливает ключи

$array3 = array_diff(array_keys($array1, $array2))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню