On 30 Jan 2010, at 21:38, Jonathan Duncan wrote:

> Maybe it is just late, but this is bugging me.
>
> I got this example from the PHP documentation 
> (http://us3.php.net/manual/en/function.array-slice.php 
> ):
>
> $input = array("a", "b", "c", "d", "e");
>
> $output = array_slice($input, 2);      // returns "c", "d", and "e"
> print_r($output);
> $output = array_slice($input, -2, 1);  // returns "d"
> print_r($output);
> $output = array_slice($input, 0, 3);   // returns "a", "b", and "c"
> print_r($output);
>
> What is baffling me is why the second array_slice returns "d"  
> instead of "c", "d".
>
> Perhaps the wording they use in the offset gives away the answer,  
> but if so, then I submit that they are being inconsistent.  An array  
> starts counting  at 0 (unless you specify otherwise).  If the non- 
> negative offset specified is 2 then is will start at the third  
> offset.  One would think that the negative offset should work the  
> same way, but in reverse.
>
> Someone set me straight, please.  I need to just put this down for  
> the night.

Regardless of the type of indexing used from the end, it doesn't make  
sense for example 2 to return more than one item. The third (optional)  
value passed into the array is length.

I agree with you that it is inconsistent of them to use zero-based  
indexing from the front and one-based indexing from the end.

_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to