Re: Calling array_merge / array_merge_recursive without arguments
| From: | Dik Takken | Date: | Thu, 23 May 2019 19:02:26 +0000 |
| Subject: | Re: Calling array_merge / array_merge_recursive without arguments | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-105781@lists.php.net to get a copy of this message | ||
On 21-05-19 10:29, Nikita Popov wrote:
> This one makes sense in theory, because array_map(null, ...$arrays) is a
> way to perform a zip operation in PHP. Unfortunately there is an ugly
> special case if there is only a single array, which makes this not actually
> usable in practice, unless you know that there are at least two arrays. As
> such, accepting zero arrays wouldn't be very useful unless we also want to
> fix that issue (PHP 8 maybe?)
Ah, I overlooked that edge case. Indeed, array_map() would require more
fixing than I anticipated. I guess it is out of scope for the type of
fix we are discussing.
>> array_diff() & friends
>
> array_intersect() & friends
>
>
> These look like good candidates for allowing a single arg.
For array_intersect(), I was actually considering to allow zero
arguments. The use case I have in mind is to determine the common
elements in a set of zero or more arrays, like this:
array_intersect(...$arrays)
If that would just return an empty array when $arrays is empty, no
additional empty check is needed and the above would do what I
intuitively expect it to do.