2012-04-04 7 views
1

Ich habe eine wirklich schwierige Situation hier.PHP Erstellen Sie ein mehrdimensionales Array aus Objekteigenschaften

Es gibt eine Reihe dieser Objekte

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 
) 

ich es auf ein mehrdimensionales Array von etwas ähnlich wie diese Struktur

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

zu konvertieren Ich versuche Gibt es etwas ich fehle, und das ist wirklich einfach zu tun? Bitte berate mich. Ich habe versucht, durch diese Objekte zu iterieren und es funktioniert immer noch nicht und sieht hässlich aus.

Antwort

1

Sie sollten die Funktion get_object_vars verwenden.

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

Vielen Dank für die Antwort. Aber das Problem, das ich habe, ist etwas anders. Ich brauche ProductionItem-> customer-> customer_id, um zum Index des Arrays zu werden und [woi_id] => 67017 [od_id] => 7154 [pd_id] => 1112 [od_qty] => 0 [od_color] => TEAL BLUE ist über das Array [0] [43] ['od_id'] zugänglich. Dann, als ein Array von Objekten, über Array [1] [99] ['od_id'], wobei 99 ist customer_id –

+0

Vielen Dank für die Antwort. Ich habe herausgefunden, wie ich die Aufgabe auf eine andere und elegantere Weise ohne ein multidimensionales Array erledigen kann. –

Verwandte Themen