Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #5336
| From | Jerry Stuckle <jstucklex@attglobal.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Doubt regarding an array of references... |
| Date | 2012-04-03 08:03 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <jleov5$9la$1@dont-email.me> (permalink) |
| References | <jlcjem$rrb$1@dont-email.me> <jleeb1$a6i$1@dont-email.me> <9u05rvFhmrU1@mid.uni-berlin.de> |
On 4/3/2012 7:39 AM, M. Strobel wrote:
>
> My 2¢:
>
> The problem with the counted for-loop is tedious writing, and off-by-one error.
>
No error if you remember what you're doing. They can be tedious, but
allow more control over the loop. The real problem here is the indicies
must be integers and sequential.
OTOH, foreach() loops process the elements in the order they were added
to the array, which is not necessarily numeric order, i.e.
$a = array(3=>4, 2=>5, 1=>6);
foreach ($a as $v)
echo "$v\n";
prints
4
5
6
Whereas
for ($i = 1; i < 4; i++)
echo "$v\n";
prints
6
4
5
> The problem with the foreach-loop is: don't forget to use the key when you want to
> change values!
>
> This works:
>
> #--------------------------------
> strobel@s114-intel:~> php -a
> Interactive shell
>
> php> $a = array(1,2,3);
> php> foreach ($a as $k=>$v) { $a[$k]++; }
> php> var_dump($a);
> array(3) {
> [0]=>
> int(2)
> [1]=>
> int(3)
> [2]=>
> int(4)
> }
> php> foreach ($a as $k=>$v) { $a[$k]*=4; }
> php> var_dump($a);
> array(3) {
> [0]=>
> int(8)
> [1]=>
> int(12)
> [2]=>
> int(16)
> }
> php>
> #--------------------------
>
> I see references in PHP as "a can of worms", in PHP5 they are only necessary in very
> special cases.
>
> /Str.
>
References are very handy - and prevent the need for such gyrations as
you're going through.
I find this much easier to understand:
$a = array(1,2,3);
foreach ($a as &$v) {
$v++;
}
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Doubt regarding an array of references... "Leonardo Azpurua" <leonardo@exmvps.org> - 2012-04-02 11:47 -0430
Re: Doubt regarding an array of references... "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> - 2012-04-03 11:02 +0200
Re: Doubt regarding an array of references... "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-04-03 13:39 +0200
Re: Doubt regarding an array of references... Jerry Stuckle <jstucklex@attglobal.net> - 2012-04-03 08:03 -0400
Re: Doubt regarding an array of references... "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-04-03 14:15 +0200
Re: Doubt regarding an array of references... "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-04-04 10:48 +0200
csiph-web