2014-11-30 2 views
0

В массиве, как это:PHP - подсчитайте значения массива, а не ключи?

$array = array(
    'value1'=>'', 
    'value2'=>'', 
    'value3'=>'', 
); 

Мы можем:

echo count($array); 
// Outputs 3 

Но если у нас есть массив, как:

$array = array(
    'value1'=>'', 
    'value2'=>'some value', 
    'value3'=>'', 
); 

Что такое лучший способ сделать следующее?

echo someFunction($array); 
// Outputs 1 
+0

Какой результат вы ожидаете от '[0, 'foo', '', null, false]'? – georg

ответ

4

Использование array_filter для того, чтобы удалить пустые значения:

$array = array(
    'value1'=>'', 
    'value2'=>'some value', 
    'value3'=>'', 
); 
echo count(array_filter($array)); // prints 1 
1

цикл по массиву и проверить каждый элемент для truthy

То же array_filter, но быстрее (и не выделяет другой массив, поэтому используется меньше памяти)

Смежные вопросы