Reputation: 3108
How does the count function work with arrays, like the one below?
My thought would be that the following code outputs 4, because there are four elements there:
$a = array
(
"1" => "A",
1 => "B",
"C",
2 => "D"
);
echo count($a);
Upvotes: 17
Views: 39719
Reputation: 317177
count
works exactly as you would expect, e.g., it counts all the elements in an array (or object). But your assumption about the array containing four elements is wrong:
1 => "B"
will overwrite "1" => "A"
.2 => "C"
2 => "D"
you overwrote "C".So your array will only contain 1 => "B"
and 2 => "D"
and that's why count
gives 2. You can verify this is true by doing print_r($a)
. This will give
Array
(
[1] => B
[2] => D
)
Please go through Arrays again.
Upvotes: 33
Reputation: 2449
The array you have created only has two elements in it, hence count returning 2. You are overwriting elements; to see what’s in your array, use:
print_r($a);
Upvotes: 0
Reputation: 6394
You can use this example to understand how count works with recursive arrays
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// recursive count
echo count($food, COUNT_RECURSIVE); // output 8
// normal count
echo count($food); // output 2
?>
Upvotes: 8