转换填充了对象的数组

Jac*_*len 0 php

我有一个数组,像这样返回对象:

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)

但这不起作用.

rob*_*o06 5

您将对象视为数组.

$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)