希望有些人可以帮我解决以下问题..
我执行以下查询:
$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"
感谢您提出任何建议/提示。
答案 0 :(得分:2)
尝试
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
答案 1 :(得分:2)
我并不是说这种方法很好,但它可以直接回答你的问题:
$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'];
}
答案 2 :(得分:0)
好像你检索了你的数组。
现在形成你所需的变量。
您无法使用数值启动变量。相反,我们形成它像$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;