Предупреждение: array_filter() ожидает, что параметр 2 будет допустимым обратным вызовом, функция «пустая» не найдена или недопустимое имя функции....
Почему empty считается недопустимым обратным вызовом?
$arr = array_filter($arr, 'empty');
Это работает: if(empty($arr['foo'])) die();