Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在php中保存API调用的结果。

在php中保存API调用的结果。
EN

Stack Overflow用户
提问于 2020-12-18 17:39:44
回答 3查看 123关注 0票数 0

我通过API进行了GET调用,并收到了最初看起来像这样的数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"@odata.context":"API-URL-CALL","value":[{"Id":1,"Name":Bill"},{"Id":2,"Name":Ted"}]

我将这些数据修改为如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array("Id"=>1,"Name"=>"Bill","Id"=>2,"Name"=>"Ted");

我试图做的是回显这一切,但到目前为止,我只能获得要打印的第二个Id和姓名。

我的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
$my_array = array("Id"=>1,"Name"=>"Bill","Id"=>2,"Name"=>"Ted");

foreach($my_array as $key => $value)
{
echo 
"
$key = $value <br>
";
}
?>

如上所述,这只会打印出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Id = 2
Name = Ted

我觉得这是一个简单的修复,我已经看了很多帖子,但似乎找不到合适的修复方法。我尝试过这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$key = $value[0] <br>

$key = $value[0][Id] <br>

foreach($my_array as $arr)
echo 
"
id = $arr[Id], <br>
name = $arr[Name]
"

foreach($my_array as $arr)
echo 
"
id = $arr[0][Id], <br>
name = $arr[0][Name]
"

所有这些都让我觉得要么是一个单一的角色,要么什么都没有。就像我之前说的,我觉得这只是一个简单的修复,我忽略了一些东西,或者没有添加一些东西?任何帮助或建议,甚至到另一篇文章的链接都将不胜感激。感谢您抽出时间:^D

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-18 17:57:05

不知道如何从最初的JSON获得第二个数组(尽管这在格式上有一些错误),但是您已经将该数组展平为具有重复键的单个数组(并且只会以最后一个值结束)。

如果你尝试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print_r(array("Id"=>1,"Name"=>"Bill","Id"=>2,"Name"=>"Ted"));

您将看到数据最终如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Array
(
    [Id] => 2
    [Name] => Ted
)

为了正确地提取数据,您需要解码JSON (在代码中更正了JSON ),然后提取数据...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$json = '{
    "@odata.context": "API-URL-CALL",
    "value": [
        {
            "Id": 1,
            "Name": "Bill "
        }, 
        {
            "Id": 2,
            "Name": "Ted"
        }
    ]
}';

$my_array = json_decode($json, true);
foreach ( $my_array['value'] as  $arr) {
    echo "
    id = $arr[Id], <br>
    name = $arr[Name]
    ";
}
票数 0
EN

Stack Overflow用户

发布于 2020-12-18 17:44:15

您必须在索引名称两边加上引号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach($my_array as $arr)
  echo '
id = '.$arr['Id'].', <br>
name = '.$arr['Name'].'
  ';
票数 0
EN

Stack Overflow用户

发布于 2020-12-18 18:06:41

这是因为您定义了关联数组。这种类型的数组使用key=>value对。在这种类型的数组中,键应该是唯一的。

因为您使用了不唯一的键,例如IdName,所以每次插入一个值来数组时,它都会覆盖以前的值。所以每次你循环数组的时候,它只显示上一次被覆盖的值。

为了解决这个问题,你应该在数组中使用数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$my_array = array(array("Id"=>1,"Name"=>"Bill"),array("Id"=>2,"Name"=>"Ted"));

foreach($my_array as $array)
{
   echo "{$array['Id']} = {$array['Name']} <br>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65361529

复制
相关文章
将查询结果保存到excel中
<?php //****************连接数据库*************** $localhost=”localhost”; $root=”root”; // 用户 $databasen
苦咖啡
2018/05/07
1.7K0
在java中通过API调用HBase入门学习
在之前的文章hdfs API学习中,我们已经能够成功连接hdfs,并对文件进行读写。hbase数据库的操作也非常简单,但你需要先大致了解一下hbase的架构。
zhangheng
2020/12/01
1.3K0
ES中的api调用测试
SearchRequest可用于与搜索文档、聚合、建议有关的任何操作,还提供请求突出显示结果文档的方法。 
一个风轻云淡
2023/10/15
2330
在小程序中调用API在小程序中自定义弹窗组件
表明它是一个组件,我们称之为“子组件” 3. 注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。(只使用class)
九旬
2020/10/23
3K0
PHP调用其他文件中的类
首先在一个tool.php文件中声明一个类: <?php class tool { function say(){ $result="Hello,World"; return $resul
用户8660814
2021/07/13
2.7K0
在java中构建高效的结果缓存
缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。
程序那些事
2020/07/08
1.5K0
PHP调用API接口实现天气查询功能的示例
天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等。 1、查询方式 根据地名查询各城市天气情况 2.请求URL地址
用户2323866
2021/07/08
2.6K0
在 Node 中调用 Python
在 Node 中如何调用 Python 的方法?通常可以通过 REST 接口或者 RPC 的方式来完成,但是某些时候我们仅仅只需要调用对方几个很简单的方法,这种情况下去构建一个提供 REST 接口的服务或者两者对接实现 RPC 调用,这种做法的成本显然有点高。本文将会介绍一种更轻量的调用方式。
凌虚
2020/07/17
5.7K0
在Java中调用Python
在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢。当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单。恰好我在项目中就遇到了这个问题,需要在Java程序中调用Python程序。关于在Java中调用Python程序的实现,根据不同的用途可以使用多种不同的方法,在这里就将在Java中调用Python程序的方式做一个总结。
编程随笔
2019/09/11
5.1K0
在Java中调用Python
在 PHP 中使用 Google Charts API
利用 Google Chart API 可以制出各种统计图表,当前支持线形图、柱形图、饼形图、散点图、曲线图。Google Charts API Code 页面有对这个 API 使用的详细说明,但是还略显繁琐。今天发现有人开发了一个这个方面的 PHP 类,并且还包括三个例子,我就挑选一个例子结合自己的一个项目给大家讲解下如何使用:
Denis
2023/04/14
1.1K0
在 PHP 中使用 Google Charts API
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
全栈程序员站长
2022/07/05
1.9K0
Java的API调用
, 4 2月 2021 作者 847954981@qq.com 后端学习 Java的API调用 在页面抓取前,我们在.xml文件中安装库 依赖库安装 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.1.0</version> </dependency> 以此安装了okhttp3来实现API的抓取 其次就是代码本体: 我们需要的是API的调用 import
摸鱼的G
2023/02/22
1.5K0
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
欢醉
2018/01/22
2.3K0
Nmap扫描结果的保存和输出 原
该选项可将扫描结果以标准格式、XML格式和Grep格式一次性保存,分别放在.nmap,.xml和.gnmap文件中。
青木
2019/04/09
7.8K0
php调用第三方api接口_php不显示错误
大家好,又见面了,我是你们的朋友全栈君。 这是我在尝试创建新内容时不断得到的响应
全栈程序员站长
2022/09/27
9680
点击加载更多

相似问题

链式api调用并从初始api结果中保存数据

11

如何在PHP中解析Foursquare API调用的结果?

10

用PHP在MySQL中保存来自api调用的数据?

10

限制Api调用,api在php模板中

110

在PHP中调用REST API

124
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文