php自定义数组函数array_column

WBOY
Freigeben: 2016-07-25 08:54:33
Original
1284 Leute haben es durchsucht
  1. if(!function_exists('array_column')){
  2. function array_column($input, $columnKey, $indexKey=null){
  3. $columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
  4. $indexKeyIsNull = (is_null($indexKey)) ? true : false;
  5. $indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
  6. $result = array();
  7. foreach((array)$input as $key=>$row){
  8. if($columnKeyIsNumber){
  9. $tmp = array_slice($row, $columnKey, 1);
  10. $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
  11. }else{
  12. $tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
  13. }
  14. if(!$indexKeyIsNull){
  15. if($indexKeyIsNumber){
  16. $key = array_slice($row, $indexKey, 1);
  17. $key = (is_array($key) && !empty($key)) ? current($key) : null;
  18. $key = is_null($key) ? 0 : $key;
  19. }else{
  20. $key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
  21. }
  22. } // bbs.it-home.org
  23. $result[$key] = $tmp;
  24. }
  25. return $result;
  26. }
  27. }
  28. // 使用例子
  29. $records = array(
  30. array(
  31. 'id' => 2135,
  32. 'first_name' => 'John',
  33. 'last_name' => 'Doe'
  34. ),
  35. array(
  36. 'id' => 3245,
  37. 'first_name' => 'Sally',
  38. 'last_name' => 'Smith'
  39. ),
  40. array(
  41. 'id' => 5342,
  42. 'first_name' => 'Jane',
  43. 'last_name' => 'Jones'
  44. ),
  45. array(
  46. 'id' => 5623,
  47. 'first_name' => 'Peter',
  48. 'last_name' => 'Doe'
  49. )
  50. );
  51. $firstNames = array_column($records, 'first_name');
  52. print_r($firstNames);
  53. /*
  54. Array
  55. (
  56. [0] => John
  57. [1] => Sally
  58. [2] => Jane
  59. [3] => Peter
  60. )
  61. */
  62. $records = array(
  63. array(1, 'John', 'Doe'),
  64. array(2, 'Sally', 'Smith'),
  65. array(3, 'Jane', 'Jones')
  66. );
  67. $lastNames = array_column($records, 2);
  68. print_r($lastNames);
  69. /*
  70. Array
  71. (
  72. [0] => Doe
  73. [1] => Smith
  74. [2] => Jones
  75. )
  76. */
  77. $mismatchedColumns = array(
  78. array(
  79. 'a' => 'foo',
  80. 'b' => 'bar',
  81. 'e' => 'baz'
  82. ),
  83. array(
  84. 'a' => 'qux',
  85. 'c' => 'quux',
  86. 'd' => 'corge'
  87. ),
  88. array(
  89. 'a' => 'grault',
  90. 'b' => 'garply',
  91. 'e' => 'waldo'
  92. ),
  93. );
  94. $foo = array_column($mismatchedColumns, 'a', 'b');
  95. print_r($foo);
  96. /*
  97. Array
  98. (
  99. [bar] => foo
  100. [0] => qux
  101. [garply] => grault
  102. )
  103. */
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage