希望有人能帮我找出下面的问题。
我执行以下查询:
$key = "privatehashere";
$query = file_get_contents("https://privateurlhere/?key_id=" . $key . "¶mshere");根据官方文档,我知道输出是一个JSON,它是编码的。因此,我将其解码并转换为PHP数组:
$result = json_decode($query, true);此时,当我使用<pre>标记和print_r函数显示输出时,我得到:
Array
(
[status] => ok
[data] => Array
(
[grp] => Array
(
[0] => Array
(
[number] => 24384
[desc] => ENTITY-2
)
[1] => Array
(
[number] => 46590
[desc] => ENTITY-1
)
)
)
)我需要的是将结束值保存到变量中,这样我就可以进一步处理它们。因此,理想的结果应该是:
$number_0 = "24384"
$desc_0 = "ENTITY-2"
$number_1 = "46590"
$desc_1 = "ENTITY-1"谢谢你的建议/暗示。
发布于 2016-01-21 13:38:26
试一试
foreach($result['data']['grp'] as $item)
{
echo 'Number '.$item['number'];
echo '<br/>desc '.$item['desc'];
}您还可以将它们直接存储到变量中。
$number_0 = $result['data']['grp'][0]['number'];
$desc_0 = $result['data']['grp'][0]['desc'];
$number_1 = $result['data']['grp'][1]['number'];
$desc_1 = $result['data']['grp'][1]['desc'];注意事项:在PHP中,不能用数字开始变量名。就像你在这里做的一样,$0_number
发布于 2016-01-21 13:43:13
我并不是说这种方法是一种很好的实践,而是对你的问题的直接回答:
$number_0 = $result['data']['grp'][0]['number'];
$desc_0 = $result['data']['grp'][0]['desc'];
$number_1 = $result['data']['grp'][1]['number'];
$desc_1 = $result['data']['grp'][1]['desc'];如果要动态分配数组中的变量,可以这样做:
foreach( $result['data']['grp'] as $k => $v )
{
${'number_'.$k} = $v['number'];
${'desc_'.$k} = $v['desc'];
}发布于 2016-01-21 13:49:55
看来你找回了你的数组。现在形成你所需要的变量。不能使用数值初始化变量。相反,我们形成了这样的$subKey_mainKey,例如。$number_0;
$getDetails[0] = array("number"=>24384, "desc"=>"ENTITY-2");
$getDetails[1] = array("number"=>46590, "desc"=>"ENTITY-1");
foreach($getDetails as $indKey=>$indArray) {
foreach($indArray as $indNKey=>$indNVal) {
$createVar = $indNKey."_".$indKey;
$$createVar = $indNVal;
}
}
echo $number_0;https://stackoverflow.com/questions/34925312
复制相似问题