On Thu, Jun 1, 2023, at 4:02 PM, Janusz Szczypka wrote:
> Dear PHP Internals,
>
> I would like to propose new functions to search in arrays: array_find() and
> array_find_key().
>
> array_find(): This function would allow developers to find the first 
> element in
> an array that satisfies a specific condition. The condition would be 
> defined by
> a callback function. The functionality would be similar to the existing
> array_filter() function but would instead return the first element that 
> matches
> the callback condition, rather than all matching elements.
> This function can be used in a way simliar to in_array with added 
> functionality
> of custom check.
>
> array_find_key(): This function would return the key of the first 
> element in an
> array that matches a given condition, defined by a callback function. This
> function can be used in a way simliar to array_search with added 
> functionality
> of custom check.
>
> Both functions stop processing after first match is found, so any side 
> effects
> of the callbacks should be avoided.
>
> Here are the proposed function definitions:
>
> /**
>   * @param callable(mixed):bool $callback
>   */
> function array_find(callable $callback, array $array)
> {
>      foreach ($array as $row) {
>          if (call_user_func($callback, $row) === true) {
>              return $row;
>          }
>      }
>      return null;
> }
>
> /**
>   * @param callable(mixed):bool $callback
>   * @return null|int|string
>   */
> function array_find_key(callable $callback, array $array)
> {
>      foreach($array as $key => $row) {
>          if (call_user_func($callback, $row) === true) {
>              return $key;
>          }
>      }
>      return null;
> }
>
> Both functions are easy to implement in PHP (and probably as easy to 
> implement
> in C), but IMHO could be nice addition to set of array related functions 
> in PHP.
>
> If the response to this e-mail will be positive, I will prepare RFC.
> We should also discuss order of arguments as the functions are similar 
> to both
> array_search/in_array with condition-array and array_filter with
> array-condition, but as you can see above I am leaning towards 
> condition-array.
>
> Looking forward to hearing your thoughts.
>
> Best regards,
> Janusz

As with the array_group thread:

What is the argument to put these functions in hard to update C, rather than 
PHP that is easy to download with Composer?  "could be a nice addition" is not 
a compelling argument.  Is it substantially faster?  It is truly universally 
used?  Does it correct some security concern?

Those are the questions that stdlib additions need to answer.

--Larry Garfield

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to