我有一个数组,其值是特定格式的所有数组,如下所示:
Array
(
[0] => Array
(
[username] => John
)
[1] => Array
(
[username] => Joe
)
[2] => Array
(
[username] => Jake
)
)
Run Code Online (Sandbox Code Playgroud)
我想这个:
Array
(
[0] => John
[1] => Joe
[2] => Jake
)
Run Code Online (Sandbox Code Playgroud)
我可以通过循环手动执行此操作,但有更好的方法吗?如果没有,是否可以对具有公共属性的对象数组执行此操作?
Pet*_*lor 34
从PHP 5.5.0开始,有一个内置函数array_column
可以完成这个任务.
Sil*_*ost 30
为什么复杂的事情?
foreach($array as $k=>$v) {
$new[$k] = $v['username'];
}
Run Code Online (Sandbox Code Playgroud)
xpo*_*ack 12
从 PHP 5.6 开始,您可以使用 splat 运算符。如果数组键是数字,您可以使用:
$newArray = array_merge(...$oldArray);
Run Code Online (Sandbox Code Playgroud)
对于像我这样的其他读者,如果username
每个内部数组的键不同,并且您想将其展平,请使用以下命令:
call_user_func_array('array_merge', $the_array);
Run Code Online (Sandbox Code Playgroud)
请注意,密钥必须不同。像这样:
[
0 => [
'a' => 1
],
1 => [
'b' => 2
]
]
Run Code Online (Sandbox Code Playgroud)
运行代码后,你有这个:
[
'a' => 1,
'b' => 2,
]
Run Code Online (Sandbox Code Playgroud)