Я не очень хорошо понимаю ваш вопрос, но, возможно, вы ищете array_filter()
?
array_filter($arr)
вернет массив со всеми удаленными пустыми значениями, поэтому в вашем случае будет сохранен только индекс 2 со значением test
, после чего вы можете использовать count()
.
В свете вашего комментария:
if (count(array_filter($arr)) > 0)
{
echo '$arr has values';
}
Помните, что если вы не предоставите второй аргумент для array_filter()
, все значения, которые могут быть преобразованы в false, будут отброшены, например 0
. Если вы хотите удалить только пустые значения, вы можете сделать:
if (count(array_filter($arr, 'isset')) > 0)
{
echo '$arr has values';
}
Или (мой предпочтительный вариант):
if (count(array_filter($arr, 'strlen')) > 0)
{
echo '$arr has values';
}
Вас также может заинтересовать функция Coalesce для PHP .
В свете вашего последнего комментария я все еще думаю, что array_filter()
работает (при условии $_FILES
), попробуйте это:
if (count(array_filter($_FILES['inputbox']['name'], 'strlen')) > 0)
{
echo count($_FILES['inputbox']['name']) . ' files';
echo '<br />';
echo count(array_filter($_FILES['inputbox']['name'], 'strlen')) . ' files set';
}