Как @ Пока Theis не скажет, array_filter - это определенно верный путь. Вы можете использовать его напрямую, например, так:
$_SESSION['items'] = array_filter($_POST['items']);
Что даст вам все элементы массива, который не оценивается как ложный. И.Е. вы отфильтруете как NULL, 0, false и т. д.
Вы также можете передать функцию обратного вызова для создания пользовательской фильтрации, например:
abstract class Util {
public static function filterNull ($value) {
return isset($value);
}
}
$_SESSION['items'] = array_filter($_POST['items'], array('Util', 'filterNull'));
Это вызовет метод filterNull класса Util для каждого элемента в массиве items, и если они установлены (см. языковая конструкция isset () ), то они сохраняются в результирующем массив.