php重置数组键 - array_column

1,437 阅读1分钟

一直忽略了array_column 的一个重要用法,特此记录一下。

1、array_column 函数定义:

array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array

2、参数说明:

input:需要取出数组列的多维数组。
column_key:需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键,也可以是属性名。 
index_key:作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。

其中 column_key 可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)

3、废话不说,看code(重置数组键值):

    $arr = array(                                                                   
        ['name'=>'ad', 'age'=>12, 'sex'=>'m'],                                      
        ['name'=>'dg', 'age'=>12, 'sex'=>'f'],                                      
        ['name'=>'ht', 'age'=>15, 'sex'=>'m']                                       
    );                                                                              

    var_dump(array_column($arr,null,'name'));
    var_dump(array_column($arr,null,'age'));

4、输出分别如下:

array(3) {
  ["ad"]=>
  array(3) {
    ["name"]=> "ad",
    ["age"] => int(12),
    ["sex"] => "m"
  }
  ["dg"]=>
  array(3) {
    ["name"]=> "dg",
    ["age"] => int(12),
    ["sex"] => "f"
  }
  ["ht"]=>
  array(3) {
    ["name"]=> "ht",
    ["age"] => int(15),
    ["sex"] =>  "m"
  }
}
array(2) {
  [12]=>
  array(3) {
    ["name"]=> "dg",
    ["age"] => int(12),
    ["sex"] => "f"
  }
  [15]=>
  array(3) {
    ["name"]=> "ht",
    ["age"] => int(15)
    ["sex"] => "m",
  }