2013-04-03 2 views
1

У меня есть набор вложенных массивов.Подсчет строк/записей в многомерном массиве

[данные] - это массив верхнего уровня.

Массивы нижнего уровня идентифицируются инкрементными числами, динамически назначаемыми ... по существу, каждая подматрица идентифицирует строку/запись информации.

Как извлечь подсчет субмассивов? Мне нужно иметь возможность сделать это, чтобы опубликовать эти данные в БД.

Количество поддиапазонов динамическое и может меняться в зависимости от того, какие данные обрабатываются.

[data] => Array 
     (
      [0] => Array 
       (
        [id] => 3475 
        [name] => Player1 
        [score] => 11870 
        [rank] => 213 
        [total_cities] => 2 
        [crown] => None 
        [alliance_id] => 134 
        [title] => Earl 
        [fame_total] => 509875 
        [fame_rank] => 381 
        [defeated_total] => 3436 
        [defeated_rank] => 376 
        [plunder_total] => 1388754 
        [plunder_rank] => 245 
       ) 

      [1] => Array 
       (
        [id] => 3523 
        [name] => Player2 
        [score] => 1978 
        [rank] => 281 
        [total_cities] => 1 
        [crown] => None 
        [alliance_id] => 134 
        [title] => Baron 
        [fame_total] => 0 
        [fame_rank] => 448 
        [defeated_total] => 0 
        [defeated_rank] => 448 
        [plunder_total] => 0 
        [plunder_rank] => 436 
       ) 

      [2] => Array 
       (
        [id] => 73 
        [name] => Player3 
        [score] => 1308 
        [rank] => 304 
        [total_cities] => 1 
        [crown] => None 
        [alliance_id] => 134 
        [title] => Marquess 
        [fame_total] => 5604153 
        [fame_rank] => 237 
        [defeated_total] => 37270 
        [defeated_rank] => 229 
        [plunder_total] => 68130 
        [plunder_rank] => 335 
       ) 
+0

Я не совсем уверен, что понимаю, что вопрос даже есть, но array_count() с рекурсивным флагом? или просто array_count ($ myArray ['data']) –

+0

'array_count ($ data)' или 'array_count ($ _ POST ['data'])' просто верните мне флаг свойств. То, что я пытаюсь просто сделать, - подсчитать количество подмассивов в основном массиве. Я выяснил, какой код работает ниже; мой следующий шаг - использовать этот код как цикл, в котором я буду запускать инструкции SQL для вставки/обновления базы данных. – MSM

+0

Что такое флаг свойств? –

ответ

0

Самый простой способ:

$count = 0; 
foreach($mainarray as $subarray) 
    $count += count($subarray); 
} 
0

Давайте предположим, $ данных Ваш главный массив: Это один печатает имя каждого внутреннего массива (0, 1, 2 ... для примера) и подсчитывает каждый из элементов суб-массива:

echo "Number of sub-arrays: ".count($online_time); //optional 
foreach($data as $inner_array=>$data_of_inner_array) { 
echo $inner_array; 
echo " --- ".count($data_of_inner_array); 
echo "<br/>"; 
} 

я предполагаю, что выход будет

Number of sub-arrays: 3 
0 --- 14 
1 --- 14 
2 --- 14 
+0

Спасибо, но все, что я хочу сделать, это подсчет вспомогательных массивов. Как мне это сделать? Мне не нужно знать количество элементов в массиве sub, потому что это исправлено. – MSM

+0

это не первый ряд? «необязательно»? который является ожидаемым результатом на вашем примере? –

+0

ожидаемый результат был просто прямым, и я достиг этого по методу, который я написал выше. Спасибо, что заставили меня указать в правильном направлении. – MSM

2

я использовал комбинацию методов, выделенных Marc B и Танос, чтобы получить мой желаемый результат

Это код, который я использовал:

$count = 0; 
foreach($data as $data=>$inner_array){ 
    $count = $count+1; 
} 

echo $count; 

Я побежал с тестовыми данными, установленными с 143 уникальных строк, и я получил это эхо назад, поэтому жизнь хороша.

Спасибо, ребята.

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