在平时的php开发中,我们通常会调用第三方的API来满足我们的业务需求,但是会遇到返回数据格式不统一的情况,特别是第三方api接口返回数据兼容我们的api接口,这个时候我们就需要使用到PHP多维数组重组的方法。

1、请求第三方API接口返回的格式

array(1) {  [0] =>  array(20) {    'url' =>    string(147) "http:/*************************************************/*****"    'filemtime' =>    int(1525688855)    'app' =>    string(11) "smarket_dev"    'stream' =>    string(23) "stream20180507102518_67"    'start' =>    int(1525688855)    'end' =>    int(1525689358)    'm3u8' =>    string(147) "http://*******************************/**************************/"    'duration' =>    int(503)    'thumbnail' =>    string(100) "https://cdn-************************/********************"    'size' =>    int(9259195)    'width' =>    int(640)    'height' =>    int(360)    'begin' =>    int(0)    'uptime' =>    int(1525689364)    'update' =>    int(1525689364)    'id' =>    string(24) "5af02c1415d5239acc6ee28e"    'title' =>    string(9) "未定义"    'desc' =>    string(9) "未定义"    'case' =>    string(1) "0"    'caseName' =>    string(3) "无"  }}

第三方API接口返回的一般都是数组格式的字符串,我们就可以用数组去处理,处理成我们想要的格式。

2、在类中写一个处理的方法,调用这个方法即可,返回的数据就是我们想要的

function getRecordInfo($webcastId)    {        $app = 'webinar';        $stream = $webcastId;        $_access_id = '***********';        $_access_key = '*************';        $_openApiUrl = 'http://*************/*******/';        $service = new \webinar\_services\webCast\Impl\AodianyunApi($_access_id, $_access_key, $_openApiUrl);        $result = $service->vodGetInfo($app, $stream);        foreach ($result as $value) {            $results[] = [                'createdTime' => $value['filemtime'],                'id' => $value['stream'],                'recordStartTime' => $value['start'],                'recordEndTime' => $value['end'],                'size' => $value['size'],                'subject' => $value['title'],                'url' => $value['url']            ];        }        return $results;    }

3、getRecordInfo返回的数据

array(100) {  [0] =>  array(7) {    'createdTime' =>    int(1527072944)    'id' =>    string(6) "stream"    'recordStartTime' =>    int(1527072944)    'recordEndTime' =>    int(1527073551)    'size' =>    int(131098618)    'subject' =>    string(9) "未定义"    'url' =>    string(105) "https://cdn-************************/********************"  }  [1] =>  array(7) {    'createdTime' =>    int(1526029294)    'id' =>    string(6) "stream"    'recordStartTime' =>    int(1526029294)    'recordEndTime' =>    int(1526029826)    'size' =>    int(114636073)    'subject' =>    string(9) "未定义"    'url' =>    string(105) "https://cdn-************************/********************"  }

4、思路图:

定义处理第三方接口的getRecordInfo()=》在getRecordInfo()中请求第三方api =》将第三方的api返回的数据给到result=》将result数据进行格式处理。

希望本片文章可以帮助到大家,文中如有错误还望指出。谢谢!

更过PHP相关问题请访问PHP中文网:PHP视频教程

更多相关文章

  1. php怎么跟数据库连接
  2. php八大数据类型有哪些
  3. 方便实用的PHP数据库操作类
  4. PHP实现数据分页显示详细操作
  5. php访问数据库的过程
  6. 有关PHP中PDO连接数据库的详细教程与实际操作演示
  7. PHP实时生成并下载超大数据量的EXCEL文件
  8. 利用for循环实现excel中多列数据合并到一个单元格
  9. TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

随机推荐

  1. JavaScript 对象及初识面向对象
  2. script标签写在哪里好?
  3. JavaScript中两个感叹号的作用
  4. [持续更新]JavaScript学习笔记(五)
  5. 动态定位Bootstrap工具提示(用于动态生成
  6. 如何在详细信息标记的结束事件上添加CSS
  7. javascript实现查看html网页放大图片功能
  8. 原生javascript-图片弹窗交互效果
  9. Javascript学习之匿名函数与自执行详解
  10. 如何使用AngularJS获取url参数