PHP返回数组值

时间:2018-07-28 06:06:08

标签: php arrays multidimensional-array

在以下方面确实需要一些帮助。

因此,我的脚本使用以下命令在远程服务器上调用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] : '';
}

1 个答案:

答案 0 :(得分:2)

API响应返回一个多维数组,但是您的函数pipe := redisClient.TxPipeline() m := structs.Map(server) for k, v := range m { pipe.HMSet(username, k, v) } cmder, err := pipe.Exec() if err != nil { return nil, err } 仅提供1维。

public function getFromResponse($key)的返回值实际上是一个数组,因此可以执行以下操作:$api->getFromResponse('resData')从内部数组中获取项目的值。