f



Return value of 'each', 'current', 'next', 'end'

These array functions: 'each', 'current', 'next', 'end'

They return a reference or a value.

let's say I want to modify the last value of an array without iterating
through all of them.

I would do:

<?
end($array) ;
current($array)="new value" ;
?>

is that posible??

Thanks.

0
10/14/2006 6:35:07 PM
comp.lang.php 32646 articles. 0 followers. Post Follow

5 Replies
1152 Views

Similar Articles

[PageSpeed] 53

Hermann.Richter@gmail.com wrote:
> These array functions: 'each', 'current', 'next', 'end'
>
> They return a reference or a value.

They return values.

> let's say I want to modify the last value of an array without iterating
> through all of them.
>
> I would do:
>
> <?
> end($array) ;
> current($array)="new value" ;
> ?>
>
> is that posible??

Try

end($array);
$array[key($array)] = "new value";

0
chernyshevsky (2297)
10/14/2006 7:09:28 PM
Chung Leong wrote:
> Hermann.Richter@gmail.com wrote:
> > These array functions: 'each', 'current', 'next', 'end'
> >
> > They return a reference or a value.
>
> They return values.
>
> > let's say I want to modify the last value of an array without iterating
> > through all of them.
> >
> > I would do:
> >
> > <?
> > end($array) ;
> > current($array)="new value" ;
> > ?>
> >
> > is that posible??
>
> Try
>
> end($array);
> $array[key($array)] = "new value";

$array[(sizeof($array)-1)] ="new value";
should also work.

I would imagine that end() and sizeof() work very much the same way.
They probably both iterate through the array to the end only 1 counts
as it goes, and the other returns the key of the last element in the
array.

0
cutenfuzzy (260)
10/14/2006 7:54:08 PM
Daz wrote:
>
> Chung Leong wrote:
>> Hermann.Richter@gmail.com wrote:
>> > <?
>> > end($array) ;
>> > current($array)="new value" ;
>> > ?>
>> >
>> > is that posible??
>>
>> end($array);
>> $array[key($array)] = "new value";
>
> $array[(sizeof($array)-1)] ="new value";
> should also work.

<?php
$tmp = array('forty-two'=>42, 'twenty-four'=>24);
echo $array[sizeof($array)-1];
?>

-- 
File not found: (R)esume, (R)etry, (R)erun, (R)eturn, (R)eboot
0
hexkid (576)
10/15/2006 3:17:17 AM
Daz wrote:
> $array[(sizeof($array)-1)] ="new value";
> should also work.
>
> I would imagine that end() and sizeof() work very much the same way.
> They probably both iterate through the array to the end only 1 counts
> as it goes, and the other returns the key of the last element in the
> array.

No. end() move the internal point inside the array to the last element.
sizeof() returns the number of elements inside the array. As Pedro
illustrated, the distinction is most obvious when you have an
associative array.

Arrays in PHP are hybrid linked-lists and hash tables. Each elements
links to its neighbors and can simultanously be quickly accessed
through a hash key.

0
chernyshevsky (2297)
10/15/2006 4:44:16 AM
Chung Leong wrote:
> Daz wrote:
> > $array[(sizeof($array)-1)] ="new value";
> > should also work.
> >
> > I would imagine that end() and sizeof() work very much the same way.
> > They probably both iterate through the array to the end only 1 counts
> > as it goes, and the other returns the key of the last element in the
> > array.
>
> No. end() move the internal point inside the array to the last element.
> sizeof() returns the number of elements inside the array. As Pedro
> illustrated, the distinction is most obvious when you have an
> associative array.
>
> Arrays in PHP are hybrid linked-lists and hash tables. Each elements
> links to its neighbors and can simultanously be quickly accessed
> through a hash key.

Completely correct of course. I have no idea why I didn't think of that
one. I tend to go out of my way whenever possible to create
non-assiciative arrays when I can, for the reason I illistrated.
Perhaps it's a bad habit, but it has served me well in the past under
certain circumstances. I think this is why associative arrays
completely slipped my mind.

Thanks for clearing that up, and my humble apologies for any confusion
caused to the OP.

All the best.

Daz.

0
cutenfuzzy (260)
10/16/2006 6:00:08 PM
Reply: