@Chiang
2020-01-10T06:29:54.000000Z
字数 1681
阅读 728
PHP-Array
array_column — 返回数组中指定的一列
array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array
array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
- input
需要取出数组列的多维数组。 如果提供的是包含一组对象的数组,只有 public 属性会被直接取出。 为了也能取出 private 和 protected 属性,类必须实现 __get() 和 __isset() 魔术方法。- column_key
需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键,也可以是属性名。 也可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)- index_key
作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
从多维数组中返回单列数组。
<?php// Array representing a possible record set returned from a database$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',),array('id' => 5623,'first_name' => 'Peter','last_name' => 'Doe',));$first_names = array_column($records, 'first_name');print_r($first_names);?>Array([0] => John[1] => Sally[2] => Jane[3] => Peter)
<?php// Using the $records array from Example #1$last_names = array_column($records, 'last_name', 'id');print_r($last_names);?>Array([2135] => Doe[3245] => Smith[5342] => Jones[5623] => Doe)
<?phpclass User{public $username;public function __construct(string $username){$this->username = $username;}}$users = [new User('user 1'),new User('user 2'),new User('user 3'),];print_r(array_column($users, 'username'));?>Array([0] => user 1[1] => user 2[2] => user 3)
<?phpclass Person{private $name;public function __construct(string $name){$this->name = $name;}public function __get($prop){return $this->$prop;}public function __isset($prop) : bool{return isset($this->$prop);}}$people = [new Person('Fred'),new Person('Jane'),new Person('John'),];print_r(array_column($people, 'name'));?>Array([0] => Fred[1] => Jane[2] => John)
