试图访问数组内的对象

时间:2011-12-15 12:22:37

标签: php arrays service

作为服务结果,我有这个数组:

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){}

我做错了什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

由于最外面的项($materail)是一个数组,因此需要通过[]索引访问其内部。您需要$material[0]->VALORES,这是一个包含对象和数组的对象。所以要获得其内部项目,

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