Php 从json声明seperate变量
我有一个JSON格式,如下所示:Php 从json声明seperate变量,php,json,variables,Php,Json,Variables,我有一个JSON格式,如下所示: $myresult = '{"promoter_name":[],"country":["Hong Kong"],"download":["Yes"],"download_date_range":["20161201","20161215"],"first_login_date_range":[],"last_login_date_range":[],"login_frequency":[]}' extract(json_decode($json, true)
$myresult = '{"promoter_name":[],"country":["Hong Kong"],"download":["Yes"],"download_date_range":["20161201","20161215"],"first_login_date_range":[],"last_login_date_range":[],"login_frequency":[]}'
extract(json_decode($json, true));
echo $country[0]; // Hong Kong
echo $download[0]; // Yes
echo $download_date_range[0]; // 20161201
echo $download_date_range[1]; // 20161215
我想使用PHP打印单个值,例如:
$download = 'Yes';
$country = "Hong Kong";
首先将字符串解码为
$arrResult = json_decode($result, true);
然后使用索引访问值像这样使用json\u解码。json_decode将json转换为对象,然后使用箭头操作符访问每个成员
<?php
$result = '{"promoter_name":[],"country":["Hong Kong"],"download":["Yes"],"download_date_range":["20161201","20161215"],"first_login_date_range":[],"last_login_date_range":[],"login_frequency":[]}';
$res = json_decode($result);
echo $res->country[0];//and so on
?>
JSON字符串中的所有值都是数组:
$json = '{"promoter_name":[],"country":["Hong Kong"],"download":["Yes"],"download_date_range":["20161201","20161215"],"first_login_date_range":[],"last_login_date_range":[],"login_frequency":[]}';
您可以执行以下操作:
$myresult = '{"promoter_name":[],"country":["Hong Kong"],"download":["Yes"],"download_date_range":["20161201","20161215"],"first_login_date_range":[],"last_login_date_range":[],"login_frequency":[]}'
extract(json_decode($json, true));
echo $country[0]; // Hong Kong
echo $download[0]; // Yes
echo $download_date_range[0]; // 20161201
echo $download_date_range[1]; // 20161215
或者,您可以筛选出单个值:
foreach(json_decode($json, true) as $key => $value){
if(is_array($value) && count($value) == 1){
$data[$key] = $value[0];
} elseif(empty($value)) {
$data[$key] = null;
} else {
$data[$key] = $value;
}
}
extract($data);
echo $country; // Hong Kong
echo $download; // Yes
echo $download_date_range[0]; // 20161201
echo $download_date_range[1]; // 20161215
这是数组方法。如果您使用的对象方法代码将是这样的
$arr = json_decode($result);
$country = $arr->country[0];
$download = $arr->download[0];
或者使用动态变量
foreach($arr as $k=>$v){
if($v != []){
${$k} = $v[0];
}
}
echo $country;
echo $download
. 现在echo$array['download'][0]。。。。。诸如此类others@Haj穆罕默德A看到了你想要的答案。@HikmatSijapati我重新格式化了问题,而不是问题本身。我还在读:我要回显个人价值观的编辑答案。见答案@Haj Mohammad A
$arr = json_decode($result);
$country = $arr->country[0];
$download = $arr->download[0];
foreach($arr as $k=>$v){
if($v != []){
${$k} = $v[0];
}
}
echo $country;
echo $download