从多维数组中提取值

3

你好,我正在使用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的文档这里,我已经使用了每一个http POST请求,正如你所看到的,contact参数是一个包含ID、名称和号码的多维数组。现在我只想获取号码,该怎么做?

响应是JSON格式的。 - Kraang Prime
如何做到这一点?如果我收到消息,我只需使用 $_POST['message']。 - wobsoriano
1
使用var_dump()函数来实现,将$_POST['message']放入var_dump()中,即var_dump($_POST['message']) - Sourabh Kumar Sharma
是的,请看我的编辑评论。 - Sourabh Kumar Sharma
@Sourabh 我会尝试的,先生。 - wobsoriano
叫我Sourabh就可以了,不用称呼我先生 :) - Sourabh Kumar Sharma
2个回答

3

由于响应是JSON格式,您可以按照以下方式进行操作:

$json = json_decode($result);
echo $json->result->success->contact->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":[

      ]
   }
}

2

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接