Подсчет элементов в многомерном массиве? - PullRequest
2 голосов
/ 24 февраля 2012

Я пытаюсь посчитать вложенные элементы в многомерном массиве.Сначала я подумал, что мог бы использовать COUNT_RECURSIVE, но это все значит.Поэтому я попробовал два разных подхода, и ни один из них мне не понравился.Есть ли лучший способ сделать это?

$count = 0;
foreach ($topics as $t) {
    foreach ($t as $c) {
    $count++; 
    }
}
echo $count;

// or

echo (count($topics, COUNT_RECURSIVE)-count($topics));

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012
function countNested($arr) {
    return (count($arr, COUNT_RECURSIVE) - count($arr));
}
0 голосов
/ 11 марта 2015

// В следующем примере будут учитываться одномерные или двумерные массивы

$values_count = (count($values, COUNT_RECURSIVE) - count($values)?:count($values));
0 голосов
/ 24 февраля 2012

Я бы написал этот код:

$count = 0;
foreach ($topics as $t) {
    $count+= count($t); 
}
echo $count;
...