从多维数组中提取值

时间:2015-05-23 04:09:19

标签: php arrays multidimensional-array

您好我正在使用https://smsgateway.me的回调功能,我目前的代码在这里:

<?php
include "smsGateway.php";
$smsGateway = new SmsGateway('email@gmail.com', 'password');

$message = //extract number value from multidimensional array;

$number = "09058789624";
$deviceID = 5495;
$result = $smsGateway->sendMessageToNumber($number, $message, $deviceID);
?>

在smsgateway.me here的文档中我已经使用了每个http POST请求,你可以看到参数联系人说它是一个多维数组,包含ID,Name和数。现在我想要做的只是获得数字。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

由于响应是JSON,您可以执行以下操作:

$json = json_decode($result);
echo $json->result->success->contact->number;

当然你也应该添加错误处理,并检查对象是否存在等等。

作为参考,我使用了文档,概述了在此处指定发送消息时返回的响应:Send Message to Number

响应格式(成功)

{
   "success":true,
   "result":{
      "success":[
         {
            "id":"308",
            "device_id":"4",
            "message":"hello world!",
            "status":"pending",
            "send_at":"1414624856",
            "queued_at":"0",
            "sent_at":"0",
            "delivered_at":"0",
            "expires_at":"1414634856",
            "canceled_at":"0",
            "failed_at":"0",
            "received_at":"0",
            "error":"None",
            "created_at":"1414624856",
            "contact":{
               "id":"14",
               "name":"Phyllis Turner",
               "number":"+447791064713"
            }
         }
      ],
      "fails":[

      ]
   }
}

答案 1 :(得分:2)

首先获取响应数据并打印出来,使用以下命令查看其数组结构:

echo "<pre>";
print_r($data);
echo "</pre>";

基于此,访问您想要的数据。