2014-04-22 115 views
0

我试图从值数组中显示单个值。 如果我使用print_r($arr)它显示了这个值php - array - 非法字符串偏移

{ 
    "a": 14, 
    "b": 3, 
    "c": 61200, 
    "d": [ 
     "2014-04-22 12:00:06", 
     "2014-04-23 12:00:06", 
     "2014-04-24 12:00:06" 
    ] 
} 

但是当我试图用echo $arr->a$arr['a']。 它显示illegal string offset 'a'。 如何从值数组中获取单个值?

+1

解码它到一个数组第一? –

回答

2

看起来像JSON所以需要json_decode()

$d = '{"a":14,"b":3,"c":61200,"d":["2014-04-22 12:00:06","2014-04-23 12:00:06","2014-04-24 12:00:06"]}'; 
$j = json_decode($d); 
echo '<pre>'; 
print_r($j); 
echo $j->a; 
1

第一解码尝试从JSON这个

$arr = json_decode($arr); 
echo $arr->a 
1

解码:

$v = json_decode('{ 
    "a": 14, 
    "b": 3, 
    "c": 61200, 
    "d": [ 
     "2014-04-22 12:00:06", 
     "2014-04-23 12:00:06", 
     "2014-04-24 12:00:06" 
    ] 
}'); 

echo $v->a; 
1

输入看起来像JSON - 尝试以下操作解析JSON数据:

$json_string = '{ 
    "a": 14, 
    "b": 3, 
    "c": 61200, 
    "d": [ 
     "2014-04-22 12:00:06", 
     "2014-04-23 12:00:06", 
     "2014-04-24 12:00:06" 
    ] 
}'; 

$vals = json_decode($json_string,true); 

echo $vals->a; 
1

更多信息将会有帮助。什么版本的PHP正在使用?你使用的是网络引擎(Apache,Nginx等)还是仅仅使用命令行?纠正我,如果我错了,但我假设你使用json_decode并使其成为一个对象。

$obj = json_decode('{"a":14,"b":3,"c":61200,"d":["2014-04-22 12:00:06","2014-04-23 12:00:06","2014-04-24 12:00:06"]}'); 
echo "Result: " . $obj->a; 

Result: 14 

这在PHP版本的工作只是罚款5.3,5.4,5.5