2013-09-26 52 views
0

我有這樣的結構從數組轉儲未來:如何在PHP中解析這個複雜的數組?

0 => 
object(stdClass)[3] 
    public 'start' => string '12:30:00' (length=8) 
    public 'end' => string '12:45:00' (length=8) 
    public 'structure' => 
    object(stdClass)[5] 
     public 'structure_id' => int 5 
     public 'structure_name' => string 'LABORATORY 1' (length=18) 
    public 'specialist' => 
    object(stdClass)[6] 
     public 'specialist_id' => int 222 
     public 'specialist_surname' => string 'Smith' (length=7) 
     public 'specialist_name' => string 'John' (length=9) 
     public 'specialist_signature' => string 'Dr.' (length=3) 
    public 'price' => float 80.5 
1 => 
object(stdClass)[3] 
    public 'start' => string '12:30:00' (length=8) 
    public 'end' => string '12:45:00' (length=8) 
    public 'structure' => 
    object(stdClass)[5] 
     public 'structure_id' => int 5 
     public 'structure_name' => string 'LABORATORY 4' (length=18) 
    public 'specialist' => 
    object(stdClass)[6] 
     public 'specialist_id' => int 222 
     public 'specialist_surname' => string 'White' (length=7) 
     public 'specialist_name' => string 'Jack' (length=9) 
     public 'specialist_signature' => string 'Dr.' (length=3) 
    public 'price' => float 80.5 
2 => 
object(stdClass)[3] 
    public 'start' => string '12:30:00' (length=8) 
    public 'end' => string '12:45:00' (length=8) 
    public 'structure' => 
    object(stdClass)[5] 
     public 'structure_id' => int 5 
     public 'structure_name' => string 'LABORATORY 9' (length=18) 
    public 'specialist' => 
    object(stdClass)[6] 
     public 'specialist_id' => int 222 
     public 'specialist_surname' => string 'Brown' (length=7) 
     public 'specialist_name' => string 'Lester' (length=9) 
     public 'specialist_signature' => string 'Dr.' (length=3) 
    public 'price' => float 80.5 

如何使用PHP解析呢?特別是,我想爲正常的PHP變量賦值,以便打印它們或放入HTML表格。

+0

你可以只做print_r嗎? – 2013-09-26 07:57:59

+1

爲什麼要經歷將這個對象數組中的值分配給變量的所有開銷;只需在需要時隨時訪問它們 –

回答

1

你可以訪問此結構是這樣

echo $object[0]->start; 
echo $object[0]->end; 
echo $object[0]->structure->specialist_id; 

這將導致

12:30:00 
12:45:00 
5 

爲什麼你需要爲這個變量?那會導致太多的變數。而是使用循環遍歷對象並使用「 - >」訪問內部對象

+0

太棒了,Jabran !!! :-) 我通過向該變量傳遞來自該數組的對象(實際上是JSONed數組)來定義$ object。所以我解決了這個問題: $ object = json_decode($ response-> result); $ response-> result來自一個CURL調用,它查詢一個Web服務並返回'result'。 再次,謝謝! :-) –

1

你需要利用extract()對PHP

<?php 
$size = "large"; 
$var_array = array("color" => "blue", 
        "size" => "medium", 
        "shape" => "sphere"); 
extract($var_array, EXTR_PREFIX_SAME, "wddx"); 
echo "$color, $size, $shape, $wddx_size\n"; 
?> 

OUTPUT:藍色,大,球形,中等