user1469270
user1469270

Reputation:

Check the size of an array in PHP

I'm trying to find out if the size of this array is 6 or more. I am counting the second level (where is says size=10). What's the simplest method?

Here it is dumped:

ARRAY (SIZE=1)
  0 => 
    ARRAY (SIZE=10)
      'ID' => INT 35
      'ALT' => STRING '' (LENGTH=0)
      'TITLE' => STRING 'FD-7' (LENGTH=4)
      'CAPTION' => STRING 'THIS IS THE FIFTH CAPTION FOR THE PHOTOGRAPH.' (LENGTH=45)
      'DESCRIPTION' => STRING '' (LENGTH=0)
      'MIME_TYPE' => STRING 'IMAGE/JPEG' (LENGTH=10)
      'URL' => STRING 'HTTP://FASHION-DETAIL.DEV/WP-CONTENT/UPLOADS/2014/02/FD-7.JPG' (LENGTH=61)
      'WIDTH' => INT 432
      'HEIGHT' => INT 650
      'SIZES' => 
        ARRAY (SIZE=9)
          'THUMBNAIL' => STRING 'HTTP://FASHION-DETAIL.DEV/WP-CONTENT/UPLOADS/2014/02/FD-7.JPG' (LENGTH=61)
          'THUMBNAIL-WIDTH' => INT 63
          'THUMBNAIL-HEIGHT' => INT 96
          'MEDIUM' => STRING 'HTTP://FASHION-DETAIL.DEV/WP-CONTENT/UPLOADS/2014/02/FD-7.JPG' (LENGTH=61)
          'MEDIUM-WIDTH' => INT 432
          'MEDIUM-HEIGHT' => INT 650
          'LARGE' => STRING 'HTTP://FASHION-DETAIL.DEV/WP-CONTENT/UPLOADS/2014/02/FD-7.JPG' (LENGTH=61)
          'LARGE-WIDTH' => INT 432
          'LARGE-HEIGHT' => INT 650

Upvotes: 0

Views: 356

Answers (1)

Alma Do
Alma Do

Reputation: 37365

Apply COUNT_RESURSIVE flag for count():

$result = count($array, COUNT_RECURSIVE);

-for entire array. If you want to count only certain element, pass it like:

//$key is your element's index
$result = count($array[$key]);

Finally, to get only counts from second level, you can apply:

$array = [
   ['foo', 'bar'],
   ['baz'],
   [],
   ['bee', 'feo']
];

$result = array_sum(array_map('count', $array));//5

Upvotes: 1

Related Questions