欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php返回数组中指定的一列(php5.5.0默认函数array_column()在php<5.5.0的应用)

程序员文章站 2022-03-15 18:35:20
...
array_column() 返回数组中指定键名的列
(PHP 5 >= 5.5.0)
array_column — 返回数组中指定的一列
php参考手册:http://www.php.net/manual/zh/function.array-column.php

如果php版本小于5.5.0怎么办呢?我们自定义一个
以下代码摘自onethink
  1. /**
  2. * 返回数组中指定的一列
  3. * http://www.onethink.cn
  4. * /Application/Common/Common/function.php
  5. *
  6. * array_column — PHP 5 >= 5.5.0 默认函数
  7. * PHP 5 *
  8. * @access public
  9. * @param array $input 需要取出数组列的多维数组(或结果集)
  10. * @param string $columnKey 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。也可以是NULL,此时将返回整个数组(配合indexKey参数来重置数组键的时候,非常管用)
  11. * @param string $indexKey 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
  12. * @return array
  13. */
  14. if (! function_exists('array_column'))
  15. {
  16. function array_column(array $input, $columnKey, $indexKey = null)
  17. {
  18. $result = array();
  19. if (null === $indexKey)
  20. {
  21. if (null === $columnKey)
  22. {
  23. $result = array_values($input);
  24. }
  25. else
  26. {
  27. foreach ($input as $row)
  28. {
  29. $result[] = $row[$columnKey];
  30. }
  31. }
  32. }
  33. else
  34. {
  35. if (null === $columnKey)
  36. {
  37. foreach ($input as $row)
  38. {
  39. $result[$row[$indexKey]] = $row;
  40. }
  41. }
  42. else
  43. {
  44. foreach ($input as $row)
  45. {
  46. $result[$row[$indexKey]] = $row[$columnKey];
  47. }
  48. }
  49. }
  50. return $result;
  51. }
  52. }
复制代码
  1. // Array representing a possible record set returned from a database
  2. $records = array(
  3. array(
  4. 'id' => 2135,
  5. 'first_name' => 'John',
  6. 'last_name' => 'Doe',
  7. ),
  8. array(
  9. 'id' => 3245,
  10. 'first_name' => 'Sally',
  11. 'last_name' => 'Smith',
  12. ),
  13. array(
  14. 'id' => 5342,
  15. 'first_name' => 'Jane',
  16. 'last_name' => 'Jones',
  17. ),
  18. array(
  19. 'id' => 5623,
  20. 'first_name' => 'Peter',
  21. 'last_name' => 'Doe',
  22. )
  23. );
  24. $first_names = array_column($records, 'first_name');
  25. print_r($first_names);
  26. ?>
复制代码
  1. Array
  2. (
  3. [0] => John
  4. [1] => Sally
  5. [2] => Jane
  6. [3] => Peter
  7. )
复制代码