array_column()
函数是用来从多维数组中返回指定列的值的函数。该函数可以用于提取一个二维数组中的某一列值并放入一个新的数组中。
用法:
array_column(array $input, mixed $column_key [, mixed $index_key = null]) : array|false
参数:
$input
:必需,输入的多维数组。$column_key
:必需,指定想要返回的列的键名。$index_key
:可选,用作返回数组的索引/键的列。默认为null
。
返回值:
- 返回包含指定列的值的数组,如果提供了
index_key
,则该数组的键将为该列的值。如果出现错误,返回false
。
示例:
- 返回数组中某一列的值:
$data = array(
array('id' => 1, 'name' => 'John', 'age' => 25),
array('id' => 2, 'name' => 'Jane', 'age' => 27),
array('id' => 3, 'name' => 'Mark', 'age' => 30)
);
$names = array_column($data, 'name');
// 返回值:array('John', 'Jane', 'Mark')
- 将某一列作为索引/键返回一个关联数组:
$data = array(
array('id' => 1, 'name' => 'John', 'age' => 25),
array('id' => 2, 'name' => 'Jane', 'age' => 27),
array('id' => 3, 'name' => 'Mark', 'age' => 30)
);
$names = array_column($data, 'name', 'id');
// 返回值:array(1 => 'John', 2 => 'Jane', 3 => 'Mark')
- 获取对象数组的属性值:
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$people = array(
new Person('John', 25),
new Person('Jane', 27),
new Person('Mark', 30)
);
$ages = array_column($people, 'age');
// 返回值:array(25, 27, 30)
请注意,array_column()
函数要求 PHP 5.5 或更高版本。