2016-11-18 7 views
0

で満たされた配列を変換します私は戻って、このようなオブジェクトを与える配列を持つオブジェクト

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

中間変数 – Mox

答えて

5

オブジェクトを配列として扱っています。

$array['key']は配列内の要素にアクセスするための表記法ですが、$object->keyはオブジェクト用の表記法です。

これを試してみてください:

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

EDIT:それは(要素のprivate性質のために)動作しない場合は、あなたがオブジェクトのクラスファイルにgetID()getName()のような関数を宣言する必要がある場合があります、とそのように使用してください:

$cars = array();  
foreach ($result as $key => $value) { 
    $cars[$value->getID()] = $value->getName(); 
} 
0

$arr = get_object_vars($obj);機能を使用してください。オブジェクトを配列に変換します。

関連する問題