$a = array(array('a','b','c','f','g'),'a'=>123);
$jsonStr = json_encode($a);
$e = json_decode($jsonStr);
通过print_r打印为:
stdClass Object ( [0] => Array ( [0] => a [1] => b [2] => c [3] => f [4] => g ) [a] => 123 )
如果我想获取123的值我直接$e->a;
但我想获取0里面的值应该怎么处理啊,对象属性名为0肯定是说不同的,这种情况应该怎么取值呢?

解决方案 »

  1.   

    echo $e->{'0'}[1]; //b通常用 $e = json_decode($jsonStr, true); 转换成数组就比较容易处理了
    echo $e[0][1]; //b
      

  2.   

    牛逼啊,群主,谢谢指导啊
    $e->{'0'}这种形式是什么情况啊,这个我百度不知道搜索什么学习啊,对象 加大括号 访问 的是什么啊
      

  3.   

    {} 将其中的内容视为一个整体
    这段代码可能有助于你理解$a = new stdClass;
    $a->v1 = 'abc';echo $a->v1; //abc$n = 'v1';
    echo $a->$n; //abc
    echo $a->{$n}; //abc$i = 1;
    echo $a->{'v' . $i}; //abc
      

  4.   

    原来是这样的啊,谢谢版主
    $a = array(array('a','b','c','f','g'),'a'=>123);
    $jsonStr = json_encode($a);
    $e = json_decode($jsonStr);
    $i = "0";
    $ar =  $e->$i;
    这样也可以,呵呵