Re: [RFC] array_only() and array_except() – Utility functions for array key filtering
| From: | Muhammed Arshid KV | Date: | Fri, 20 Feb 2026 17:37:38 +0000 |
| Subject: | Re: [RFC] array_only() and array_except() – Utility functions for array key filtering | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-130111@lists.php.net to get a copy of this message | ||
Hi,
Thanks for the feedback.
1. Yes, *array_intersect_key() *and *array_diff_key() *can be used today,
but the RFC proposes dedicated functions for better readability, less
boilerplate, and potentially better performance and lower memory usage by
avoiding temporary arrays.
2. Good point about naming. Making the key-filtering behavior explicit
(e.g., *array_only_keys* and *array_except_keys*) improves clarity and
avoids confusion.
On Fri, 20 Feb 2026, 3:38 pm Claude Pache, <claude.pache@gmail.com> wrote:
>
>
> Le 20 févr. 2026 à 10:25, Muhammed Arshid KV <arshidkv12@gmail.com> a
> écrit :
>
> Hello Internals,
>
> I would like to propose a new RFC titled *array_only() and array_except()*
> .
>
> RFC: https://wiki.php.net/rfc/array_only_except
>
> <https://wiki.php.net/rfc/array_only_except?utm_source=chatgpt.com>
>
> This RFC proposes adding two utility functions to the PHP core:
>
> • array_only(array $array, array $keys): array
> • array_except(array $array, array $keys): array
>
> These functions allow selecting or excluding specific keys from an array.
>
> Similar helpers are commonly used in frameworks, and adding native support
> would improve readability and consistency in userland code.
>
> Summary:
>
> • array_only() returns a new array containing only the specified keys.
> • array_except() returns a new array excluding the specified keys..
> • Original array is not modified.
> • Works with associative and numeric keys.
> • No impact on SAPIs or on OPcache.
>
> I would appreciate feedback and suggestions from the community.
> If there is general agreement, I plan to move the RFC forward.
>
> Thanks,
> Muhammed Arshid KV
>
>
> Hi,
>
> The principle of the RFC is interesting to me, as it is a situation I
> encounter from time to time. Two remarks:
>
> 1. It may be interesting to compare with currently available solutions.
> Currently, I use
array_intersect_key and
> array_diff_key when I need
> the semantics of proposed array_only and
> array_except:
>
> ```php
> array_intersect_key($data, ['id' => null, 'email' => null]);
> ```
>
> 2. I think that the name of the new functions ought to make evident that
> we are filtering on keys and not on something else. I suggest:
> array_only_keys and
> array_except_keys.
>
> —Claude
>
>