$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',
)
3条答案
按热度按时间thigvfpy1#
试试看
从Return first key of associative array in PHP开始
希望能有所帮助!:)
5tmbdcev2#
你不能用
array_column
函数来做这件事,除非你事先确定每个数组的第一个元素的键是什么。您需要使用
foreach()
执行此操作,并使用reset()
获取第一个元素。e5nqia273#
虽然
array_column()
允许使用整数来定位列,但它必须是一个现有的整数键,否则,需要确定第一个子数组的第一个键,以动态访问该列。代码:(Demo)
输出:
如果使用循环或函数迭代器,则可以调用
current()
或reset()
来访问每行的第一个元素,但是如果这些第一个元素具有不同的键,则从技术上讲,这不是一列数据,请理解我在demo中的意思--您无意中从不同的键获取了值。