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

[email protected] ("Christoph M. Becker")
Newsgroups php.general
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.