Я хочу получить только нулевые значения count в этом массиве, если я использую count()
или sizeof
он также получит нулевые индексы.
в моем случае
У меня есть массив, подобный этому Array ( [0] => )
count
равен 1
. но я хочу получить не нулевой счет, в этом случае это должно быть 0
, как я могу это сделать, пожалуйста, помогите ……………………. …
просто используйте array_filter () без обратного вызова
print_r(array_filter($entry));
$count = count(array_filter($array));
array_filter
удалит любые записи, которые будут вычисляться как false
, например null
, число 0
и пустые строки. Если вы хотите удалить только null
, вам необходимо:
$count = count(array_filter($array,create_function('$a','return $a !== null;')));
что-то вроде…
$count=0; foreach ($array as $k => $v) { if (!empty($v)) { $count++; } }
должен сделать трюк. вы можете также обернуть его функцией:
function countArray($array) { $count=0; foreach ($array as $k => $v) { if (!empty($v)) { $count++; } } return $count; } echo countArray($array);
хотя я не так хорош с PHP, я думаю, вы должны программно удалить пустые элементы из массива, которые могут помочь
Один из вариантов
echo "Count is ".count(array_filter($array_with_nulls, 'strlen'));
Если вы не считаете пустые и нулевые значения, вы можете сделать это
echo "Count is ".count(array_filter($array_with_nulls));
В этом блоге вы можете увидеть немного больше информации
http://briancray.com/2009/04/25/remove-null-values-php-arrays/