sounds like array_find could be implemented by just adding a new flag for array_filter's $mode: ARRAY_FILTER_STOP_ON_FIRST_MATCH or some such?
On Fri, 2 Jun 2023 at 02:15, Casper Langemeijer <langemei...@php.net> wrote: > > On Thu, Jun 1, 2023, at 18:02, Janusz Szczypka wrote: > > 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. > > This would actually be an alternative to a simple foreach() with an if() and > a break. As your example implementation makes clear. > > array_find() and array_find_key() would still do the same internally, but add > a function call adding the overhead of pushing parameters to stack, switching > the scope, passing return value back switch scope and pop from the callstack > again. If parameters or return value are typed this adds even more overhead. > > I don't think there is any optimisation possible when this is done in C. > > To the proposer it probably feels that this is an array function currently > missing, but instead it's probably better not to have array_find() because > people might actually use it for larger datasets. > > Although I acknowledge that it will reduce the number of lines of PHP code it > doesn't actually reduce the mental capacity to read and maintain code. I find > the simple elemental building blocks of loops, conditionals and expressions > easier and more expressive. In my experience this is especially so for less > experienced developers. > > Then there is a problem of naming. array_search() and array_find(). To a new > developer, how would they know which is which? > > Also there is the missing array_find_value_and_key() method. Because why > should we be limited to either matching the key OR the value? > > Greetings, Casper > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php