Web lists-archives.com

Re: [PHP] difference between indexed and associative arrays?

On 05.04.2017 at 16:23, Larry Garfield wrote:

> On 04/04/2017 06:23 PM, Jeffry Killen wrote:
>> And associative array would be looped with foreach
>> and an indexed array would be looped through with for and an iterator.
> Untrue.  foreach() works just fine with both types of arrays.
> Strictly speaking PHP doesn't have indexed arrays.  It has an ordered
> hash, which it calls an array, which has some special magic in it that
> gives it a monotonically increasing integer key if one is not specified,
> allowing it to behave kinda like an arbitrarily sized array.  There is
> no difference in the data structure itself.
> $arr = ['A', 'B', 'C'];
> foreach ($arr as $val) {
>   print $val . PHP_EOL;
> }
> That's totally legit.  

Indeed.  And if you need also the numeric index, you could do:

  foreach ($arr as $i => $val) {
    print "$i: $val\n";

> I honestly don't recall the last time I used a
> for() loop in PHP. :-)

I usually prefer foreach loops as well, but there is at least one case
where a for loop might be preferable, namely if there are a certain
number of runs and range() would be unnecessary overhead.

Christoph M. Becker

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php