2011-12-15 97 views
0

其服务结果我有这样的数组:尝试访问对象的内部数组

array(1) { 
    [0]=> 
    object(stdClass)#322 (2) { 
    ["NOME_PROPRIEDADE"]=> 
    string(8) "MATERIAL" 
    ["VALORES"]=> 
    object(stdClass)#323 (1) { 
     ["ValoresPossiveisVO"]=> 
     array(5) { 
     [0]=> 
     object(stdClass)#324 (1) { 
      ["VALOR"]=> 
      string(15) "CRISTAL INCOLOR" 
     } 
     [1]=> 
     object(stdClass)#325 (1) { 
      ["VALOR"]=> 
      string(21) "CRISTAL FOTOCROMATICO" 
     } 
     [2]=> 
     object(stdClass)#326 (1) { 
      ["VALOR"]=> 
      string(6) "RESINA" 
     } 
     [3]=> 
     object(stdClass)#327 (1) { 
      ["VALOR"]=> 
      string(13) "POLICARBONATO" 
     } 
     [4]=> 
     object(stdClass)#328 (1) { 
      ["VALOR"]=> 
      string(6) "TRIVEX" 
     } 
     } 
    } 
    } 

我访问这样的价值观:

foreach ($res->ObterValoresDosTiposDeProdutoParaWebSiteResult->PropriedadesPossiveisVO as $material) 
{ 
echo $material->NOME_PROPRIEDADE; //it returns me MATERIAL, as expected 
} 

它的工作原理,但是当我试图访问$material->VALORES是回报我,它是一个空阵列:array(o){}

我做错了什么?

在此先感谢您的帮助。

回答

2

因为最外面的项($materail)是一个数组,所以它的内部需要被[]索引访问。你需要$material[0]->VALORES,这是一个包含对象和数组的对象。所以要得到它的内部物品,

$material[0]->VALORES->ValoresPossiveisVO[0]->VALOR; 
// "CRISTAL INCOLOR"