具有索引而不是关联键的Array_column

时间:2015-12-09 20:05:52

标签: php

我究竟如何应用array_column总是获取数组的第一列而不是按名称获取列?这是:

array_column($array,[0])

而不是

array_column($array,"key");

3 个答案:

答案 0 :(得分:4)

尝试

array_column($array, array_shift(array_keys($array)));

来自Return first key of associative array in PHP

希望可以帮到你! :)

答案 1 :(得分:1)

你不能使用array_column函数执行此操作,除非您确定每个数组的第一个元素的关键字是提前的。

您需要使用foreach()执行此操作并使用reset()来获取第一个元素。

答案 2 :(得分:1)

尽管array_column()将允许您使用整数来定位列,但它必须是现有的整数键。否则,您将需要确定第一个子数组的第一个键才能动态访问该列。

代码:(Demo

$array = [
    ["foo" => "bar1", "hey" => "now"],
    ["foo" => "bar2", "hey" => "what"],
    [0 => "zero", 1 => "one"]
];

var_export(array_column($array, 'foo'));  // get the column by name
echo "\n---\n";
var_export(array_column($array, 0));  // don't need to be a string
echo "\n---\n";
var_export(array_column($array, key(current($array))));  // access the first subarray, access its key
echo "\n---\n";
var_export(array_column($array, array_shift(array_keys($array))));  // this generates a Notice, and damages the array

输出:

array (
  0 => 'bar1',
  1 => 'bar2',
)
---
array (
  0 => 'zero',
)
---
array (
  0 => 'bar1',
  1 => 'bar2',
)
---

Notice: Only variables should be passed by reference in /in/hH79U on line 14
array (
  0 => 'zero',
)