What about array_extract ?

On Mon, Jun 25, 2012 at 9:31 PM, Aaron Holmes <aa...@aaronholmes.net> wrote:

> For what my .02 is worth, I imagine "plucking" an item out of an array
> would not occur to a user-land developer as the proper nomenclature for
> extracting all the values from an array with the given key. At worst, this
> means many developers simply won't learn about the function and continue to
> implement it in user-land.
>
> When array_column was offered as the name, I immediately knew what the
> purpose was, before checking the RFC.
>
>
> On 6/25/2012 12:22 PM, Ben Ramsey wrote:
>
>> On 6/25/12 9:44 AM, Matthew Weier O'Phinney wrote:
>>
>>> On 2012-06-23, Stas Malyshev <smalys...@sugarcrm.com> wrote:
>>>
>>>> I'm open to changing or aliasing the name to array_pluck(), if others
>>>>> are in agreement.
>>>>>
>>>>
>>>> I wouldn't know what "pluck" means here. "Column" is a clear word with
>>>> established meaning. Let's not get too whimsical here.
>>>>
>>>
>>> Nothing whimsical about it at all, Stas. The definition is:
>>>
>>>     Take hold of (something) and quickly remove it from its place; pick
>>>
>>> and synonyms include "pull" and "gather".
>>>
>>> As Ralph noted, "column" is overloaded, as it has connotations dealing
>>> with databases as well as tables, and arrays often represent neither.
>>>
>>>
>> I agree with Tom and Ralph that we should look at what others are doing
>> and pick a similar name. After searching on "pluck," though, I'm getting
>> mixed results on how pluck is used:
>>
>> In Rails, it looks like pluck is used for the purpose that I've created
>> array_column, but it's used with ActiveRecord as a way to pull a column of
>> results from the database (much like PDOStatement::fetchColumn). See here:
>>
>> https://github.com/rails/**rails/commit/**a382d60f6abc94b6a965525872f858*
>> *e48abc00de<https://github.com/rails/rails/commit/a382d60f6abc94b6a965525872f858e48abc00de>
>>
>> However, in Prototype.js and Underscore.js, pluck seems behave more like
>> array_map() in PHP:
>>
>> http://api.prototypejs.org/**language/Enumerable/prototype/**pluck/<http://api.prototypejs.org/language/Enumerable/prototype/pluck/>
>> http://documentcloud.github.**com/underscore/#pluck<http://documentcloud.github.com/underscore/#pluck>
>>
>> Nevertheless, it would technically have the same effect as the "column"
>> functionality, since calling that method/property in Javascript simply
>> returns the value of the property or result of the method call.
>>
>> Also, the Python community has recently discussed adding pluck for lists:
>>
>> https://groups.google.com/**forum/?fromgroups#!topic/**
>> python-ideas/p9qtUzg9zsk<https://groups.google.com/forum/?fromgroups#!topic/python-ideas/p9qtUzg9zsk>
>>
>> It looks like they already have some functionality that implements
>> similar behavior, though:
>>
>> >>> stooges=[{'name': 'moe', 'age': 40}, {'name': 'larry', 'age': 50},
>> {'name': 'curly', 'age': 60}]
>> >>> names=[guy['name'] for guy in stooges]
>> >>> print names
>> ['moe', 'larry', 'curly']
>>
>> array_column/pluck in PHP would do the same:
>> $names = array_column($stooges, 'name');
>>
>> If other languages/frameworks/libraries are using pluck to mean exactly
>> what this implementation means, then I agree with changing the name to
>> array_pluck, but if "pluck" also carries meaning similar to array_map, then
>> I don't want to confuse folks.
>>
>> -Ben
>>
>>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to