2015-11-19 201 views
0

我在此变量的JSON字符串:如何从json字符串获取值?

$value = $request->pre_departure_type; 

随着值:

"30":0 ,"31":2 

我想从上面的JSON字符串30和0,31和2获得的值。

我试过这段代码:

$result = array(); 

foreach (explode(',', $value) as $sub) { 
    $subAry = explode(':', $sub); 
    $result[$subAry[0]] = $subAry[1]; 
} 

但这并没有爆炸的双引号括起来的。

+1

那是一个字符串或JSON值 –

+0

@Uchiha是JSON –

+0

你能张贴原来'JSON' –

回答

0

首先替换双引号,然后执行与您相同的过程。

$result = array(); 
$newvalue = str_replace('"', '', $value); 
foreach (explode(',', $value) as $sub) { 
    $subAry = explode(':', $sub); 
    $result[$subAry[0]] = $subAry[1]; 
} 
0

如果你得到你想要的结果,但与报价则简单地使用此功能来消除语录:

$str = str_replace('"', '', $string_to_replace); 
0

你的价值来为JSON格式,所以首先你需要将其转换为对象,并然后阵列和操作如下

$valueArr=(array)json_decode($value); 
$finalArray=array(); 
foreach($valueArr as $k=>$v){ 
    array_push($finalArray,$k); 
    array_push($finalArray,$v); 
} 
echo "<pre>";print_r($finalArray); 
1

如果你从你的代码得到完美的答案,那么我认为有一个问题,因为双引号逗号。首先删除它。

$str = str_replace('"', '', $value); 

您将获得价值等之后,下面

value = 30:0 ,31:2 

你将它转换成数组。

0
$value = '{"30":0 ,"31":2}'; // this is a json 

$data = json_decode($value); // json to object 

foreach($data as $key=>$value) 
{ 
echo $key; // get key 
echo $value; //get value 
} 

获取值30和0,31和2从上面