Re: [RFC] [Discussion] array_first() and array_last()
| From: | Andreas Hennings | Date: | Tue, 08 Apr 2025 18:24:24 +0000 |
| Subject: | Re: [RFC] [Discussion] array_first() and array_last() | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-127074@lists.php.net to get a copy of this message | ||
On Mon, 7 Apr 2025 at 02:48, Ayesh Karunaratne <ayesh@php.watch> wrote:
>
> > On Mon, Apr 7, 2025 at 2:05 AM Bilge <bilge@scriptfusion.com> wrote:
> > ... [snip] I suggest first proving there is a
> > legitimate need.
>
> I did a quick GitHub search for a common pattern of accessing an array
> value by using the
array_key_first and
> array_key_last functions:
>
> ```php
> $value = $arr[array_key_first($results)];
> ```
>
> - [array_key_first(: over 3,700 results[^1]
> - [array_key_last(: over 4,300 results[^2]
>
> All of these hits can benefit from the proposed array_first and
> array_last.
(I used the wrong reply button earlier..)
I suspect this is just the tip of the iceberg. You should look for
reset() and end().
I get 336K when I look for "/(= |return |\(|\[)(reset|end)\(\$/ language:PHP".
I get 8.3K when I look for "/\[array_key_(first|last)\(/ language:PHP".
There are more matches for "/reset\(" and "/end\(", but we only want
matches where the return value is used.
And indeed I want to never have to use reset() and end() again!
I don't recall when I ever intentionally used the internal array
pointer. Only as a workaround to get a first or last element.
-- Andreas