2012/8/22 Andrew Faulds <a...@ajf.me>: > On 21/08/12 22:18, Yasuo Ohgaki wrote: >> >> 2012/8/22 Andrew Faulds <a...@ajf.me>: >>> >>> Er, so you're advocating adding another method to do the same thing? Why? >> >> Because novices don't know about array_walk(). >> I think I've written this over and over in this thread. > > So publicise array_walk() then. Don't add a new function.
Already publicized more than a decade. IIRC, similar discussion was done years ago at least. I suppose it's time to add element deletion function based on values. If you don't understand how it could be useful, take a look at use cases of Ruby's delete_if. Regards, -- Yasuo Ohgaki yohg...@ohgaki.net > >>> 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/ > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php