rfc:array_column

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
rfc:array_column [2013/01/12 17:17]
ramsey Added Example #4
rfc:array_column [2013/03/09 13:09]
nikic close the vote, RFC accepted
Line 1: Line 1:
 ====== Request for Comments: array_column ====== ====== Request for Comments: array_column ======
  
-  * Version: 2.2+  * Version: 2.4
   * Date: 2013-01-11   * Date: 2013-01-11
   * Author: Ben Ramsey <​ramsey@php.net>​   * Author: Ben Ramsey <​ramsey@php.net>​
-  * Status: ​Voting+  * Status: ​Accepted
   * First Published at: http://​wiki.php.net/​rfc/​array_column   * First Published at: http://​wiki.php.net/​rfc/​array_column
  
Line 18: Line 18:
  
   array array_column(array $input, mixed $columnKey[,​ mixed $indexKey])   array array_column(array $input, mixed $columnKey[,​ mixed $indexKey])
-  array array_pluck(array $input, mixed $columnKey[,​ mixed $indexKey]) 
  
 ''​array_column()''​ returns the values from a single column of the //​**input**//​ array, identified by the //​**columnKey**//​. Optionally, you may provide an //​**indexKey**//​ to index the values in the returned array by the values from the //​**indexKey**//​ column in the //​**input**//​ array. ''​array_column()''​ returns the values from a single column of the //​**input**//​ array, identified by the //​**columnKey**//​. Optionally, you may provide an //​**indexKey**//​ to index the values in the returned array by the values from the //​**indexKey**//​ column in the //​**input**//​ array.
- 
-''​array_pluck()''​ is an alias of ''​array_column()''​. 
  
 ==== Parameters ==== ==== Parameters ====
Line 64: Line 61:
         '​first_name'​ => '​Jane',​         '​first_name'​ => '​Jane',​
         '​last_name'​ => '​Jones'​         '​last_name'​ => '​Jones'​
 +    ),
 +    array(
 +        '​id'​ => 5623,
 +        '​first_name'​ => '​Peter',​
 +        '​last_name'​ => '​Doe'​
     )     )
 ); );
Line 79: Line 81:
     [1] => Sally     [1] => Sally
     [2] => Jane     [2] => Jane
 +    [3] => Peter
 ) )
 </​code>​ </​code>​
Line 111: Line 114:
 <code php> <code php>
 <?php <?php
-// Array representing a possible record set returned from a database +// Using the $records array from Example #1
-$records ​array+
-    array( +
-        '​id'​ => 2135, +
-        '​first_name'​ => '​John',​ +
-        '​last_name'​ => '​Doe'​ +
-    ), +
-    array( +
-        '​id'​ => 3245, +
-        '​first_name'​ => '​Sally',​ +
-        '​last_name'​ => '​Smith'​ +
-    ), +
-    array( +
-        '​id'​ => 5342, +
-        '​first_name'​ => '​Jane',​ +
-        '​last_name'​ => '​Jones'​ +
-    ) +
-); +
 $lastNames = array_column($records,​ '​last_name',​ '​id'​);​ $lastNames = array_column($records,​ '​last_name',​ '​id'​);​
 print_r($lastNames);​ print_r($lastNames);​
Line 142: Line 127:
     [3245] => Smith     [3245] => Smith
     [5342] => Jones     [5342] => Jones
 +    [5623] => Doe
 ) )
 </​code>​ </​code>​
Line 213: Line 199:
     [0] => bar     [0] => bar
     [1] => garply     [1] => garply
 +)
 +*/
 +</​code>​
 +
 +=== Example #5: indexKey Collisions ===
 +
 +In the event that more than one row contains the same value for //​**indexKey**//,​ then the last //​**columnKey**//​ value for that //​**indexKey**//​ will overwrite the previous value.
 +
 +<code php>
 +// Using the $records array from Example #1
 +$firstNames = array_column($records,​ '​first_name',​ '​last_name'​);​
 +print_r($firstNames);​
 +
 +/*
 +Array
 +(
 +    [Doe] => Peter
 +    [Smith] => Sally
 +    [Jones] => Jane
 ) )
 */ */
Line 229: Line 234:
 Voting ends not before Friday, January 18, 2013. The PHP language is not changed, so a 50% + 1 majority is required. Voting ends not before Friday, January 18, 2013. The PHP language is not changed, so a 50% + 1 majority is required.
  
-<doodle title="​Accept array_column() for inclusion in PHP?" auth="​user"​ voteType="​single"​ closed="​false">+<doodle title="​Accept array_column() for inclusion in PHP?" auth="​user"​ voteType="​single"​ closed="​true">
    * Yes    * Yes
    * No    * No
Line 240: Line 245:
   * 2.1 (2013-01-11):​ Adding link to new pull request: https://​github.com/​php/​php-src/​pull/​257   * 2.1 (2013-01-11):​ Adding link to new pull request: https://​github.com/​php/​php-src/​pull/​257
   * 2.2 (2013-01-11):​ Opened voting   * 2.2 (2013-01-11):​ Opened voting
 +  * 2.3 (2013-01-12):​ Updates to the RFC (new examples, etc.), based on mailing list feedback
 +  * 2.4 (2013-01-14):​ Removed array_pluck() alias
rfc/array_column.txt · Last modified: 2017/09/22 13:28 (external edit)