我究竟如何应用array_column总是获取数组的第一列而不是按名称获取列?这是:
array_column($array,[0])
而不是
array_column($array,"key");
答案 0 :(得分:4)
尝试
array_column($array, array_shift(array_keys($array)));
希望可以帮到你! :)
答案 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',
)