在平時的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影片教學
#以上是使用PHP多維數組重組方法,相容於API介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!