我有一个数组,像这样返回对象:
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)
Run Code Online (Sandbox Code Playgroud)
如何将数组转换为id成为键和描述值,如下所示:
array (size=61)
53 => 'Volkswagen'
43 => 'Toyota'
32 => 'BMW'
Run Code Online (Sandbox Code Playgroud)
我试过了
$cars = array();
foreach ($result as $key => $value) {
$cars[$value['id']] = $value['name'];
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
您将对象视为数组.
$array['key']是用于访问数组中元素的符号,但是$object->key是对象的元素.
试试这个 :
$cars = array();
foreach ($result as $key => $value) {
$cars[$value->id] = $value->name;
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果不工作(由于private要素的性质),你可能要像声明功能getID(),并getName()在你的对象的类文件,并把它们作为这样的:
$cars = array();
foreach ($result as $key => $value) {
$cars[$value->getID()] = $value->getName();
}
Run Code Online (Sandbox Code Playgroud)