tags:

views:

59

answers:

2

Hi,

How can I count the total items in this array below?

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
                )

        )

)

this is my method, but I think it's stupid! any better ways/ methods to count the total items inside the array?

<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.';
}
?>

many thanks, Lau

+3  A: 

Your approach is certainly not stupid. If you want to count the number of uploads that occurred without error, you could foreach through $_FILES['upload']['error'] to ensure they're all 0.

webbiedave
Edit = Typo. Checking for actual errors is a great idea here.
Charles
@Charles: Thanks for the grammar fix.
webbiedave
+1  A: 

FYI... the $_FILES array structure will change if you have a form element that is nested.

eg.

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

Try it and see... also try:

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

Good luck.

Homer6