我有一个数组,可以像这样返回对象:
array (size=61)
0 =>
object(Xxx\Car)[602]
private 'id' => int 53
private 'name' => string 'Volkswagen' (length=10)
1 =>
object(Xxx\Car)[594]
private 'id' => int 43
private 'name' => string 'Toyota' (length=6)
2 =>
object(Xxx\Car)[595]
private 'id' => int 32
private 'name' => string 'BMW' (length=3)
如何将数组转换为id成为键和描述的值,如下所示:
array (size=61)
53 => 'Volkswagen'
43 => 'Toyota'
32 => 'BMW'
我试过
$cars = array();
foreach ($result as $key => $value) {
$cars[$value['id']] = $value['name'];
}
但这不起作用。
答案 0 :(得分:5)
您将对象视为数组。
$array['key']
是访问数组中元素的符号,但$object->key
是对象的元素。
试试这个:
$cars = array();
foreach ($result as $key => $value) {
$cars[$value->id] = $value->name;
}
编辑:如果这不起作用(由于元素的private
性质),您可能必须在对象类文件中声明getID()
和getName()
等函数,并使用它们:
$cars = array();
foreach ($result as $key => $value) {
$cars[$value->getID()] = $value->getName();
}
答案 1 :(得分:0)
使用{{1}}功能。它将对象转换为数组。