2014-11-01 59 views
0

我使用陣列創建像一個定製的web應用程序的數據結構的樹,但我發現很難進入樹的根PHP數組對象好或不好的做法

//this is the code i have created 
$Root = array(
    'car' => array(
     'id' => '0009' 
     'driver' => 'david', 
     'color' => 'red' 
    ) 
    'bus' => array(
     'id' => '0010' 
     'driver' => 'alex', 
     'color' => 'green' 
    ) 
); 

所以裏面嵌套數組惠蔭返回一個項目i必須做到這一點

$driver = $root['car']['driver']; 

通過添加將所有這些陣列的對象「(對象)」之前「陣列()」將解決這樣的問題:

$Root = (object)array(
    'car' => (object)array(
     'id' => '0009' 
     'driver' => 'david', 
     'color' => 'red' 
    ) 
    'bus' => (object)array(
     'id' => '0010' 
     'driver' => 'alex', 
     'color' => 'green' 
    ) 
); 
0現在

$driver = $root->car->driver; 

問題,是創建具有100個項目或多個用於每個多個陣列時這種方式具有性能問題???:

所以現在到i可以通過訪問該項目

回答

1

不好的做法。你爲什麼將你的數組轉換成對象?將它們用作數組。如果你想要對象,然後創建一個類文件,並使用對象,而不僅僅是將一個數組轉換爲對象。

+0

我同意,你也會得到繼承等好處。車輛>汽車,汽車>公共汽車等。 – ArtisticPhoenix 2014-11-01 03:03:53

+0

好吧,問題是數組的內容是動態的,數組的鍵是從數據庫或'GET'參數驅動的。所以我不能創建類並添加具有靜態名稱的屬性。 如果你有另一種方式,請寫一個代碼示例:) :)。 – 2014-11-01 03:04:25

+0

查看__set(),__get() - php中的動態屬性。但這實際上並不好,你應該提前知道這些屬性是什麼。否則,你如何驗證或處理任何事情。 – ArtisticPhoenix 2014-11-01 03:26:32

相關問題