Как при переборе массива foreach php не выводить значения нескольких элементов?
У меня возник вопрос. Как при переборе массива foreach php не выводить значения нескольких элементов? Я написал следующий код, но работает только с одним значением, а как сделать чтобы не выводилось несколько значений.
<?php
$arr = [1, 2, 3, 4, 3];
$val = 3;
echo "The original array is " . json_encode($arr) . "\n";
$filtered = array_values(array_filter($arr, function($value) use ($val) {
return $value !== $val;
}));
echo "The filtered array is " . json_encode($filtered) . "\n";
/*
результат:
Исходный массив [1,2,3,4,3]
Отфильтрованный массив [1,2,4]
*/
?>
Ответы (1 шт):
Автор решения: Daniil Loban
→ Ссылка
Если я правильно понял задачу то тут поможет метод in_array который проверит есть ли указанное значение в массиве, ну и разумеется мы должны инвертировать результат в данном случае:
<?php
$arr = [1, 2, 3, 4, 3];
$val = [1, 3];
echo "The original array is " . json_encode($arr) . "\n";
$filtered = array_values(array_filter($arr, function($value) use ($val) {
return !in_array($value, $val);
}));
echo "The filtered array is " . json_encode($filtered) . "\n";
/*
результат:
Исходный массив [1,2,3,4,3]
Отфильтрованный массив [2,4]
*/
?>