2015-10-07 5 views
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 ($ массив1 array_flip ($ array2)))' – Rizier123

ответ

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 не является пустым: если (пусто! ($ array2)) {...} или if (count ($ array2)) {...} – Erminesoft

0

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

$array3 = array_diff(array_keys($array1, $array2)) 
Смежные вопросы