2012-04-04 16 views
1

私はここで本当に厳しい状況に陥っています。PHPオブジェクトのプロパティから多次元配列を作成する

あり、私はこのような構造に似た何か

$allOrders[24] = array (
     objects[0] => array(
       'woid_ud' = 67017, 
       'od_id' = 7154, 
       'pd_id' = 1112, 
       'od_qty' = 0, 
       'od_color' = 'TEAL BLUE' 
       ), 
     objects[1] => array(
       'woid_ud' = 75839, 
       'od_id' = 5890, 
       'pd_id' = 2344, 
       'od_qty' = 0, 
       'od_color' = 'TEAL GRAY' 
       ) 
     ) 

の多次元配列に変換しようとしているこれらのオブジェクトの配列

ProductionItem Object 
(
    [customer] => Customer Object 
     (
      [customer_id] =>24 
      [company_type] => Limited Company 
      [date_created] => 2009-01-28 15:55:50 
      [vat] => 
      [status] => 1 
      [account_number] => 590893 
     ) 

    [woi_id] => 67017 
    [od_id] => 7154 
    [pd_id] => 1112 
    [od_qty] => 0 
    [od_color] => TEAL BLUE 
) 

は、私が行方不明です何もあり、これがあるさ本当に簡単ですか?助けてください。私はそれらのオブジェクトを反復しようとしましたが、それはまだ動作しないと醜いように見えます。

答えて

1

機能get_object_varsを使用してください。

function object_to_array($obj){ 
    if(!is_object($obj)){ 
     return $obj; 
    } 
    $data = array(); 
    foreach(get_object_vars($obj) as $k=>$v){ 
     $data[$k] = object_to_array($v); 
    } 
    return $data; 
} 
+0

ありがとうございます。しかし、私が持っている問題は少し異なります。 [woi_id] => 67017 [od_id] => 7154 [pd_id] => 1112 [od_qty] => 0 [od_color] =>プロダクションアイテムを表示するには、ProductionItem-> customer-> customer_idが必要です。 TEAL BLUEは配列[0] [43] ['od_id']でアクセス可能です。次に、オブジェクトの配列として、配列[1] [99] ['od_id']を介して、ここで99はcustomer_idです –

+0

ありがとうございます。多次元配列を使わずに、より洗練された方法でタスクを実行する方法を理解しました。 –