我在这个变量中有一个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];
}
但这并没有在双引号上爆炸字符串。
答案 0 :(得分:1)
如果你从你的代码中得到了完美的答案,那么我认为因为双重逗号而存在问题。首先将其删除。
$str = str_replace('"', '', $value);
您将获得如下所示的价值
value = 30:0 ,31:2
之后你将它转换为数组。
答案 1 :(得分:0)
首先替换双引号,然后执行与您相同的过程。
$result = array();
$newvalue = str_replace('"', '', $value);
foreach (explode(',', $value) as $sub) {
$subAry = explode(':', $sub);
$result[$subAry[0]] = $subAry[1];
}
答案 2 :(得分:0)
如果您获得了所需的结果但是只能使用引号,那么只需使用此功能删除引号:
$str = str_replace('"', '', $string_to_replace);
答案 3 :(得分:0)
你的值以json格式出现,所以首先你需要将它转换为object然后是数组并按照下面的方式进行操作
$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);
答案 4 :(得分: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