Re: [RFC] array_only() and ar ray_except() – Utility functions for array key fi ltering
| From: | Claude Pache | Date: | Fri, 20 Feb 2026 10:08:38 +0000 |
| Subject: | Re: [RFC] array_only() and ar ray_except() – Utility functions for array key fi ltering | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-130103@lists.php.net to get a copy of this message | ||
> 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