[关闭]
@Chiang 2020-01-10T14:29:54.000000Z 字数 1681 阅读 507

array_column

PHP-Array


array_column — 返回数组中指定的一列

说明

  1. 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
    作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。

返回值

从多维数组中返回单列数组。

范例

  1. <?php
  2. // Array representing a possible record set returned from a database
  3. $records = array(
  4. array(
  5. 'id' => 2135,
  6. 'first_name' => 'John',
  7. 'last_name' => 'Doe',
  8. ),
  9. array(
  10. 'id' => 3245,
  11. 'first_name' => 'Sally',
  12. 'last_name' => 'Smith',
  13. ),
  14. array(
  15. 'id' => 5342,
  16. 'first_name' => 'Jane',
  17. 'last_name' => 'Jones',
  18. ),
  19. array(
  20. 'id' => 5623,
  21. 'first_name' => 'Peter',
  22. 'last_name' => 'Doe',
  23. )
  24. );
  25. $first_names = array_column($records, 'first_name');
  26. print_r($first_names);
  27. ?>
  28. Array
  29. (
  30. [0] => John
  31. [1] => Sally
  32. [2] => Jane
  33. [3] => Peter
  34. )
  1. <?php
  2. // Using the $records array from Example #1
  3. $last_names = array_column($records, 'last_name', 'id');
  4. print_r($last_names);
  5. ?>
  6. Array
  7. (
  8. [2135] => Doe
  9. [3245] => Smith
  10. [5342] => Jones
  11. [5623] => Doe
  12. )
  1. <?php
  2. class User
  3. {
  4. public $username;
  5. public function __construct(string $username)
  6. {
  7. $this->username = $username;
  8. }
  9. }
  10. $users = [
  11. new User('user 1'),
  12. new User('user 2'),
  13. new User('user 3'),
  14. ];
  15. print_r(array_column($users, 'username'));
  16. ?>
  17. Array
  18. (
  19. [0] => user 1
  20. [1] => user 2
  21. [2] => user 3
  22. )
  1. <?php
  2. class Person
  3. {
  4. private $name;
  5. public function __construct(string $name)
  6. {
  7. $this->name = $name;
  8. }
  9. public function __get($prop)
  10. {
  11. return $this->$prop;
  12. }
  13. public function __isset($prop) : bool
  14. {
  15. return isset($this->$prop);
  16. }
  17. }
  18. $people = [
  19. new Person('Fred'),
  20. new Person('Jane'),
  21. new Person('John'),
  22. ];
  23. print_r(array_column($people, 'name'));
  24. ?>
  25. Array
  26. (
  27. [0] => Fred
  28. [1] => Jane
  29. [2] => John
  30. )
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注