Alex Rivera | Logout

PHP: Count function with an associative array

Asked 2011-09-28T11:22:02.733
18

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);
Edit
Report

1 Answer

34

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" is equal to 1, so 1 => "B" will overwrite "1" => "A".
  • because you defined 1, the next numeric index will be 2, e.g. "C" is 2 => "C"
  • when you assigned 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.

answered 2011-09-28T11:25:32.150

Your Answer