Reputation:
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
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