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

Reply via email to