The whole point of this was to allow people to use arrays like sets, or
easily remove list items. Not encourage people to use functional
programming.
Sure, people should use array_walk, but you've got to be kidding me if I
you
think I would honestly accept using this to remove array items by value:
array_delete($array, function ($value) { return ($value == "that value");
});
I might as well use array_walk if we're going down this route. You seem
to
want to subvert the usefulness of this function and just provide an
array_walk shorthand with less functionality.
What I want is this:
array_delete($array, "that value");
I do not want this ;)
What's wrong with extensible way? It's for PHP 5.5, not PHP 4.
But we have array_walk().
array_delete($array, function ($v) { return ($v == "that value"); });
We can use ==, ===, <, >, <=, =>, <==, ==>, !=, !==, and so on.
We may pass them as parameter,
array_delete($array, "that value", "!==");
but it does not look a modern way to do and it is not extensible
like with callable.
No, it is a modern way. Modern and functional are not one and the same.
Besides, how often we would like to delete elements based on
element's value? I guess it's not so often for most people.
Uh, I thought that was the whole point of this suggestion. You seem to want
to subvert the original intentions (making it easier to remove list items
and treat arrays as sets), to providing a new functional mechanism for
removing lots of array items satisfying a criteria.
Much more readable, does what you expect, and provides a significant,
noticeable value over array_walk here.
array_walk() is easy to use, IMHO.
People just don't know array_walk() can be used to delete
elements because of it's name.
But adding a new function is NOT the solution. That is the job of
documentation. That's like saying "people have no idea what strstr is, so
let's make a new function with less functionality called string_position!".
As I wrote in sample code, new array_delete is an intuitive
name and convenient than array_walk. They are like
array_pop/array_push and array_slice/array_splice to me.
It's nothing like those. array_pop() and array_push() are simple, they take
an array and an item to add. What's so terrible and evil and complex about
making array_delete() remove an item? Why does it have to be functional and
overcomplicated to do something we can already do, instead of providing a
simple and convenient mechanism to remove an item by value?
I do not understand this. Especially since, by your method, you should also
provide a key since it provides no method to check item's key.
Sorry, I just do not understand how your suggestion is useful.
Regards,
--
Yasuo Ohgaki
yohg...@ohgaki.net
Regards,
--
Yasuo Ohgaki
yohg...@ohgaki.net
As I mentioned earlier, array_walk() is the best way to delete
elements
with PHP
more than a decade. It should be mentioned the Stack Overflow page,
but it's not.
It's just like adding
array_pop()/array_push()/array_shift()/array_unshift() while
we have array_slice()/array_splice().
Regards,
--
Yasuo Ohgaki
yohg...@ohgaki.net
--
Andrew Faulds
http://ajf.me/
--
Andrew Faulds
http://ajf.me/
--
Andrew Faulds
http://ajf.me/