我有一个这样的数组对象:
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => sam
)
[1] => stdClass Object
(
[id] => 2
[name] => tim
)
[2] => stdClass Object
(
[id] => 3
[name] => nic
)
)
我想要这个:
Array
(
[sam] => sample text
[tim] => sample text
[nic] => sample text
)
我目前的做法:
$arr = array();
foreach($multi_arr as $single_arr) {
$arr[$single_arr->name] = "sample text";
}
是否有更清洁/更好的方法?感谢
答案 0 :(得分:2)
您可以使用array_map
获取所有密钥,然后使用array_fill_keys
填充最终数组。
$arr = array_fill_keys(array_map(function($e) {
return $e->name;
}, $multi_arr), "sample text");
如果sample text
是stdClass对象的一部分:
$arr = array_merge(...array_map(function($e) {
return [$e->name => $e->description];
}, $multi_arr));