2010-07-23 4 views
1

Как я могу подсчитать общее количество элементов в этом массиве ниже?подсчитать общее количество элементов в многомерном массиве

Array 
(
    [upload] => Array 
     (
      [name] => Array 
       (
        [0] => 1024x768.jpg 
        [1] => 1280x800.jpg 
        [2] => 1280x1024.jpg 
        [3] => 1440x900.jpg 
       ) 

      [type] => Array 
       (
        [0] => image/jpeg 
        [1] => image/jpeg 
        [2] => image/jpeg 
        [3] => image/jpeg 
       ) 

      [tmp_name] => Array 
       (
        [0] => C:\wamp\tmp\php34FE.tmp 
        [1] => C:\wamp\tmp\php353D.tmp 
        [2] => C:\wamp\tmp\php356D.tmp 
        [3] => C:\wamp\tmp\php35AC.tmp 
       ) 

      [error] => Array 
       (
        [0] => 0 
        [1] => 0 
        [2] => 0 
        [3] => 0 
       ) 

      [size] => Array 
       (
        [0] => 469159 
        [1] => 602230 
        [2] => 739779 
        [3] => 707039 
       ) 

     ) 

) 

это мой метод, но я думаю, что это глупо! любые лучшие способы/методы для подсчета количества элементов внутри массива?

<pre> 
<?php if ($_FILES) {print_r($_FILES);}?> 
</pre> 

<?php 
echo count($_FILES['upload']['name']); 

if(empty($_FILES['upload']['name'][0])) 
{ 
    echo '0 file has been uploaded.'; 
} 
?> 

большое спасибо, Lau

+3

Что глупо насчет 'count();' ? –

+0

Я не понимаю, что здесь не так. Это точно правильный способ подсчета элементов. – Jhong

+0

lol, наверное, я сделал это слишком сложно! просто у него может быть другой лучший способ ... :-) – laukok

ответ

3

Ваш подход, конечно, не глуп. Если вы хотите подсчитать количество загрузок, которые произошли без ошибок, вы можете foreach через $_FILES['upload']['error'], чтобы убедиться, что они все 0.

+0

Edit = Typo. Проверка реальных ошибок - отличная идея. – Charles

+0

@Charles: Спасибо за исправление грамматики. – webbiedave

1

FYI ... структура массива $ _FILES изменится, если у вас есть элемент формы, который является вложенным.

например.

<input name="mysuperform[image_file]" type="file" /> 

Попробуйте и посмотрите ... попробовать:

<input name="mysuperform[images][image_file]" type="file" /> 

удачи.

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