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/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://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

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