php - 解析 JSON 多级数组并查找多级键值
问题描述
我需要帮助来查找/打印给定数组中的所有值。
我可以在数组的“级别 1”上获得所有值,但不能更深。解析多级数组的通用代码是什么。我想如果我可以解析 api json,那么我可以对数据做任何其他需要的事情。
我也收到了数组到字符串的转换警告,但我明确地命名了元素——我一定遗漏了一些东西。
<?php
$drugs = fopen("http://dgidb.org/api/v2/interactions.json?drugs=FICLATUZUMAB", "r");
$json_drugs = stream_get_contents($drugs);
fclose($drugs);
$data_drugs = json_decode($json_drugs,true);
print_r($data_drugs); // Dump all data of the Array
foreach ($data_drugs as $key => $value)
{
if (empty($value[0]["searchTerm"])) {echo "-<br>";} else {echo "searchTerm : " . $value[0]["searchTerm"] . "<br>";};
if (empty($value[0]["searchTerm"])) {echo "-<br>";} else {echo "searchTerm : " . $value[0]["searchTerm"] . "<br>";};
if (empty($value[0]["drugName"])) {echo "-<br>";} else {echo "drugName : " . $value[0]["drugName"] . "<br>";};
if (empty($value[0]["chemblId"])) {echo "-<br>";} else {echo "chemblId : " . $value[0]["chemblId"] . "<br>";};
if (empty($value[0]["interactions"])) {echo "INTERACTIONS : NONE" . "<br>";} else {echo "INTERACTIONS : " . $value[0]["interactions"] . "<br>";};
if (empty($value[0]["interactions"][0]["interactionId"])) {echo "-<br>";} else {echo ">InteractionId : " . $value[0]["interactions"][0]["interactionId"] . "<br>";};
if (empty($value[0]["interactions"][0]["interactionTypes"])) {echo "INTERACTION TYPES : NONE" . "<br>";} else {echo ">Interaction Types : " . $value[0]["interactions"][0]["interactionTypes"] . "<br>";};
foreach ($data_drugs as $key => $value)
{
if (empty($value[0]["interactions"][0]["interactionTypes"][0])) {echo "-";} else {echo ">>interactionTypes : " . $value[0]["interactions"][0]["interactionTypes"][0] . "<br>";};
}
if (empty($value[0]["interactions"][0]["geneName"])) {echo "-<br>";} else {echo ">GeneName : " . $value[0]["interactions"][0]["geneName"] . "<br>";};
if (empty($value[0]["interactions"][0]["geneLongName"])) {echo "-<br>";} else {echo ">GeneLongName : " . $value[0]["interactions"][0]["geneLongName"] . "<br>";};
if (empty($value[0]["interactions"][0]["geneEntrezId"])) {echo "-<br>";} else {echo ">GeneEntrezId : " . $value[0]["interactions"][0]["geneEntrezId"] . "<br>";};
if (empty($value[0]["interactions"][0]["sources"])) {echo "SOURCES : NONE" . "<br>";} else {echo ">Sources : " . $value[0]["interactions"][0]["sources"] . "<br>";};
if (empty($value[0]["interactions"][0]["sources"][0])) {echo "-<br>";} else {echo ">>sources : " . $value[0]["interactions"][0]["sources"][0] . "<br>";};
if (empty($value[0]["interactions"][0]["pmids"])) {echo ">PMIDs : NONE" . "<br>";} else {echo ">PMIDs : " . $value[0]["interactions"][0]["pmids"] . "<br>";};
if (empty($value[0]["interactions"][0]["pmids"][0])) {echo "-<br>";} else {echo ">>PMIDs : " . $value[0]["interactions"][0]["pmids"][0] . "<br>";};
if (empty($value[0]["interactions"][0]["score"])) {echo "-<br>";} else {echo ">Score : " . $value[0]["interactions"][0]["score"] . "<br>";};
}
?>
我可以在数组的“级别 1”上获得所有值,但不能更深。解析多级数组的通用代码是什么。我想如果我可以解析 api json,那么我可以对数据做任何其他需要的事情。
我也收到了数组到字符串的转换警告,但我明确地命名了元素。
解决方案
推荐阅读
- azure-data-factory - Azure 数据工厂复制活动休息 API JSON 响应日期格式不正确
- python-3.x - 数据集的随机子集
- scapy - DHCP欺骗攻击后继续受害者的网络连接
- excel - 有没有办法更新用户表单以在列表框中更新
- python - 如果组合框中的特定项目被调用,则确定函数/方法
- ruby-on-rails - 如何从 CSV 导入图像并使用 ActiveStorage 附加到模型?
- javascript - 从 HTML 传递数据以更新 Google 表格行
- c++ - 使用 while () 循环从总和中减去数字
- coldfusion - ColdFusion:在单独的请求中终止 CFTHREAD
- jquery - 导航出现在第二行