2013-05-22 3 views
2
Array 
(
    [18] => Array 
     (
      [0] => 137585189 
      [1] => 138053588 
     ) 

    [19] => Array 
     (
      [0] => 137626141 
      [1] => 137672213 
      [2] => 137718802 
     ) 
) 

Array 
(
    [18] => Array 
     (
      [0] => 137585189 
      [1] => 138053588 
     ) 

    [19] => Array 
     (
      [0] => 137626141 
      [1] => 137672213 
      [2] => 137718802 
      [3] => 137732801 
     ) 
) 

Это результат от:Подсчитать общее количество ключей в первом массиве

foreach($value as $val){ 
    echo '<pre>'; 
    print_r($value); 
    echo '</pre>'; 
     } 

Как суммировать общее количество ключей в массиве?

Array = 5

Array = 6

+1

Количества (массив [0]) –

ответ

3

Вы можете сделать рекурсивный count, давая опцию COUNT_RECURSIVE. Вы можете получить то, что вы хотите, вычитая рекурсивный подсчет с простым подсчетом

<?php 
$food = array('fruits' => array('orange', 'banana', 'apple'), 
       'veggie' => array('carrot', 'collard', 'pea')); 

// recursive count 
echo count($food, COUNT_RECURSIVE); // output 8 

// normal count 
echo count($food); // output 2 

// to count second level entries 
echo (count($food,COUNT_RECURSIVE)-count($food,0)); //output 6 

?> 
+0

Дополнительный вопрос, как я могу получить общее количество клавиш вроде 5 + 6? – woninana

1

Вы можете использовать COUNT_RECURSIVE как так

count($arr, COUNT_RECURSIVE);

Обратите внимание, что это включает в себя сам внутренний массив, так что в конечном итоге 7 для первый массив. Чтобы исправить это, вы можете просто вычесть count($arr)

+0

Он необходим второй отсчет уровня. – user568109

1

Попробуйте это:

<?php 


$array = array(array(array(137585189,138053588),array(137626141,137672213,137718802)), array(array(137585189,138053588), array(137626141,137672213,137718802,137732801))); 



foreach($array as $val){ 
    echo '<pre>'; 
    print_r($val); 
    echo (count($val,COUNT_RECURSIVE)-count($val,0)); 

     } 

?> 

Demo Here>>

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