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