转换填充了对象的数组

时间:2016-11-18 12:58:29

标签: 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)

如何将数组转换为id成为键和描述的值,如下所示:

array (size=61)
  53 => 'Volkswagen'
  43 => 'Toyota'
  32 => 'BMW'

我试过

$cars = array();    
foreach ($result as $key => $value) {
    $cars[$value['id']] = $value['name'];
}

但这不起作用。

2 个答案:

答案 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}}功能。它将对象转换为数组。