我有一个对象数组,就像这样:
$my_array = [
(object) ['name' => 'name 0'],
(object) ['name' => 'name 1'],
(object) ['name' => 'name 2'],
];
我希望将它简化为所有name
属性的连接,例如:
name 0 / name 1 / name 2
一种方法是:
$result = [];
foreach ($my_array as $item) {
$result[] = $item->name;
}
echo implode(' / ', $result);
但我更希望使用更加紧凑的方式,比如使用array_map
:
implode(' / ', array_map(function($item) {
return $item->name;
}, $my_array ));
考虑到我实际上想将一个数组减少为一个字符串,我认为使用 array_reduce
会更清晰,但是我能想出的唯一解决方案是:
array_reduce($my_array, function($carry, $obj) {
return empty($carry) ? $obj->name : $carry .= " / $obj->name";
});
尽管如此,它并没有让人感觉更加干净... 因此问题很简单:
有没有人能想出一个易于理解的更好/更干净的解决方案?
get_object_vars
返回NULL
。你的观点是什么? - Jordi Nebot