我想通过PHP和Json建立国家数据库。我通过外部json获取数据:
{
"ph": {
"name": "Philippines",
"color": "green"
},
"ch": {
"name": "China",
"color": "red"
},
"us": {
"name": "USA",
"color": "blue"
}
}
我通过php访问它们:
$jsonfile = file_get_contents("mapdata.json");
$data = json_decode($jsonfile, true);
如果需要,我可以访问每个国家/地区的单个数据,例如:
echo $data['ph']['name'];
但是,只有当我在ph
中知道$data['ph']
时,该方法才有效。如果我将有100多个国家/地区,并且想创建一个显示其名称和颜色的for循环,该如何实现?
有点像:
foreach($data as $value){
echo $value['something?']....
}
一吨!
答案 0 :(得分:1)
正如@Kevin在注释中指出的那样,要显示数组中的name
值,只需使用$value['name']
。要仅显示ph
国家/地区的值,您需要稍微修改foreach
循环以获取每个条目的key
以及value
:
foreach ($data as $key => $value) {
if ($key == 'ph') {
echo $value['name'] . ': ' . $value['color'];
}
}
输出:
Phillipines: green
正如@misorude所指出的,如果只想访问一个特定国家的值,则使用array_key_exists
来查看数组中是否存在该国家的值,然后直接访问它们会更有效。 :
if (array_key_exists('ph', $data)) {
echo $data['ph']['name'] . ': ' . $data['ph']['color']. PHP_EOL;
}
输出:
Phillipines: green