php - PHP 返回数组值
问题描述
确实需要以下帮助。
因此,我的脚本调用远程服务器上的 API:
try {
$api = new ApiClient();
$api->call('GetNameservers', $postfields);
return array(
'success' => true,
'ns1' => $api->getFromResponse('nameserver1'),
'ns2' => $api->getFromResponse('nameserver2'),
'ns3' => $api->getFromResponse('nameserver3'),
'ns4' => $api->getFromResponse('nameserver4'),
'ns5' => $api->getFromResponse('nameserver5'),
);
}
上面的 API 调用正确地返回了必须的内容:
Array
(
[result] => 1000
[resData] => Array
(
[domain] => somecooldomain.com
[status] => Active
[autorenew] => 0
[contactid] => 822
[nameserver1] => ns1.nameserver1.com
[nameserver2] => ns2.nameserver2.com
[nameserver3] => ns3.nameserver3.com
[nameserver4] => ns4.nameserver4.com
[nameserver5] =>
[registrationdate] => 2018-06-29
[expirydate] => 2020-11-03
)
)
我的问题出现在:
return array(
'success' => true,
这有效:
'ns1' => $api->getFromResponse('result'),
但这不是我需要的,因为数组是嵌套的。我在这里尝试了很多东西:
'ns1' => $api->getFromResponse('resData.nameserver1'),
'ns1' => $api->getFromResponse(['resData']['nameserver1']),
getFromReponse 如下:
public function getFromResponse($key)
{
return isset($this->results[$key]) ? $this->results[$key] : '';
}
解决方案
API 响应返回一个多维数组,但您的函数public function getFromResponse($key)
只有一维的规定。
的返回值$api->getFromResponse('resData')
实际上是一个数组,所以这样做是有效的:$api->getFromResponse('resData')['nameserver1']
从内部数组中获取项目的值。
推荐阅读
- postgresql - postgreSQL:如何使用 ROLE 允许对给定角色的所有用户部分进行完全访问(例如,在访问表之前不使用 SET ROLE)
- javascript - 如何在 Razor .cshtml 和 Html 文件之间共享 JS 变量值(同一解决方案中的 Html 解决方案)
- c++ - 是否建议在函数中使用 using 关键字?
- amazon-web-services - 配置 Cloudformation 以使用 Cloudfront 和 S3 对 GET /subdirectory 服务 /subdirectory/index.html 的请求
- jquery - FlexSlider 不加载任何属性(幻灯片、动画、循环)
- react-admin - 列表组件的无限滚动
- javascript - 通过选择下拉列表的 JavaScript 排序表
- mysql - MySQL Workbench:“SELECT”在此服务器版本的此位置无效,预期:'(',有错误
- sql - SSIS执行存储在表的列中的sql命令
- javascript - 在创建 Vue 组件期间使用扩展运算符