Php 如何在1页中使用2个JSON文件
我尝试使用2个JSON来获取不同的信息 一个包含主信息,另一个json包含“音频”文件 我的主要json如下所示:Php 如何在1页中使用2个JSON文件,php,json,foreach,Php,Json,Foreach,我尝试使用2个JSON来获取不同的信息 一个包含主信息,另一个json包含“音频”文件 我的主要json如下所示: { "featured": [ { "id": "CID_475_Athena_Commando_M_Multibot", "name": "Líder da Equipe Mech", "image": "--IMAGE LINK--" }, { "id": "Pickaxe_ID_236_Multibot
{ "featured": [
{
"id": "CID_475_Athena_Commando_M_Multibot",
"name": "Líder da Equipe Mech",
"image": "--IMAGE LINK--"
},
{
"id": "Pickaxe_ID_236_Multibot1H",
"name": "Cutelos Duplos",
"image": "--IMAGE LINK--"
},
]
}
另一个是
{ "sounds": [
{
"id": "CID_475_Athena_Commando_M_Multibot",
"soundmp3": "--SOUND LINK--"
},
{
"id": "Pickaxe_ID_236_Multibot1H",
"soundmp3": "--SOUND LINK--"
}
]
}
在我的.php中,我正在使用,但我无法使它工作
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "---JSON URL---",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
));
$response = curl_exec($curl);
$getinfo = json_decode($response, true);
$string = file_get_contents("sounds_id.json");
$json_sons = json_decode($string, true);
?>
<?php
foreach ( $getinfo['featured'] as $jsonmain )
foreach ( $json_sons['sons'] as $jsonsounds ) : ?>
<?php
if ($jsonmain['id'] == $jsonsons['id']) { ?>
<?php echo $jsonmain['name']; ?> has the sound <a href="<?php echo $jsonsons['sounds']['soundmp3'] ?>">here.</a>
?>
<?php
}
?>
<?php endforeach; ?>
有声音吗
?>
问题是主json来自外部api,因此我无法在其中添加音频。json每天都在变化。因此,在我的“声音”中,json始终包含我将添加的项目/声音
感谢您抽出时间。建议:您可以重新格式化声音JSON文件,例如:
{
"CID_475_Athena_Commando_M_Multibot" : "Sound Link"
}
之后,您可以将其加载到数组中
<?php
$response = curl_exec($curl);
$getinfo = json_decode($response, true);
$string = file_get_contents("sounds_id.json");
$json_sons = json_decode($string, true);
foreach ( $getinfo['featured'] as $jsonmain ) {
// HERE Your logic and
// you can get sound
$soundId = $jsonmain["id"];
$soundUrl = isset($json_sons[$soundId])?$json_sons[$soundId] : null ;
// complete your logic
}
?>
我没有测试它,但希望这个想法能帮助你“我无法使它工作”你是什么意思?这应该是如何工作的,它是如何不工作的?良好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您将感谢我。而且您不需要在每一行上启动PHP解释器。仅去除所有这些噪声就可以使您的代码更具可读性,更易于维护!我不明白为什么json需要改变,你怎么能用它来获得“声音链接”呢?为了避免这种格式,json加载为关联数组,你可以很容易地用声音id直接获得声音url,比如:sounds[“CID_475_Athena_Commando_M_Multibot”]你明白了吗?我没有做到这一点,也许是我的错,因为或显示全部,或给出错误:/