我有一个二维数组(从 PDO MySQL DB 返回),其形式为
{
[0] => {
"ID" => 1,
"Name" => "Name1"
},
[1] => {
"ID" => 2,
"Name" => "Name2"
},
[2] => {
"ID" => 3,
"Name" => "Name3"
}
}
是否有一个优雅/有效的解决方案将其转换为
{
[1] => "Name1",
[2] => "Name2",
[3] => "Name3"
}
我知道我可以通过这种方式循环并创建数组,但我觉得这可能比像花哨的 array_map 这样的东西效率低。
基本上我想要类似的东西...
array_map(
function ($value) {
return $value['ID']=>$value['Name'];
}, $ResultArray);
如果您使用 PHP5.5 那么您可以使用array_column
功能 -文档 http://php.net/manual/en/function.array-column.php
$names = array_column($records, 'Name', 'ID');
否则,一个array_map
解决方案可能是您能得到的最好的解决方案:
$names = array_combine(array_map(function($value) {
return $value['ID'];
}, $records), array_map(function($value) {
return $value['Name'];
}, $records));
这是 array_combine 文档 http://php.net/manual/en/function.array-combine.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)