как получить только ненулевое количество элементов в массиве - PullRequest
5 голосов
/ 06 октября 2011

Я хочу, чтобы в этом массиве учитывалось только количество ненулевых значений, если я использую count() или sizeof, оно также получит нулевые индексы.

в моем случае

у меня есть такой массив Array ( [0] => )

count - это 1. но я хочу получить ненулевой счет, в этом случае он должен быть 0, как я могу это сделать, пожалуйста, помогите ....................... .....

Ответы [ 5 ]

13 голосов
/ 06 октября 2011

просто используйте array_filter () без обратного вызова

print_r(array_filter($entry));
11 голосов
/ 06 октября 2011
$count = count(array_filter($array));

array_filter удалит все записи, которые оцениваются как false, такие как null, число 0 и пустые строки. Если вы хотите удалить только null, вам необходимо:

$count = count(array_filter($array,create_function('$a','return $a !== null;')));
1 голос
/ 06 октября 2011

что-то вроде ...

$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);
0 голосов
/ 06 октября 2011

Один из вариантов:

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/

0 голосов
/ 06 октября 2011

хотя я не так хорош с PHP, я думаю, что вы должны программно удалять пустые элементы из массива ссылка может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...