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
rfc:array_column [2013/01/12 17:17]
ramsey Added Example #4
rfc:array_column [2017/09/22 13:28] (current)
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: ​Implemented in PHP 5.5
   * 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.1358011020.txt.gz · Last modified: 2017/09/22 13:28 (external edit)