2015-12-15 3 views
0

У меня есть следующие два массива: the 2 arraysВозвращает значения одного массива, но исключить значения второго массива

Вопрос: Как я могу сделать 3-й массив, содержащий значение первого исключая значения второго?

Дополнительная информация:

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

Так что в этом случае я получаю этот результат:

 Array ([0] => 26 [1] => 28 [2] => 34) <-- array 3: 
+0

Не стесняйтесь изменить название, я имел с трудом формулирующая вопрос. Я останусь в сети, пока на него не ответят, поэтому не стесняйтесь спрашивать больше деталей. –

+0

Просто используйте функцию 'array_diff' для PHP. [Проверить это] (https://3v4l.org/g4k55) –

ответ

1
$checked = array(11, 26, 38, 13); 
$excludeValues = array(26, 38); 

foreach ($excludeValues as $exclude) { 

    if ($key = array_search ($exclude , $checked)) { 
     unset($checked[$key]); 
    } 

} 

print_r($checked); 
1

Loop через первый массив, а затем проверить, если значение присутствует во втором массиве, если нет, то добавить его в третью массив. Или используйте функцию array_diff, предложенную Учиха.

foreach($array1 as $items){ 
    if(!in_array($array2,$item)){ 
     $array3[] = $item 
    } 
} 
1

вы можете использовать array_diff():

$checked = array(26,28,34,39,41); 
$exclude = array(39, 41); 
$result = array_diff($checked, $exclude); 
print_r($result); 

Результат:

Array ([0] => 26 [1] => 28 [2] => 34) 
+1

Я заменил пример из документации вашими числами. Лучше? –

+0

отлично :-) спасибо –

Смежные вопросы