일반적인 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 =>에 제공되고 결과 데이터의 형식이 지정됩니다.
이 글이 모든 분들께 도움이 되었으면 좋겠습니다. 글에 오류가 있으면 지적해주세요. 감사해요!
PHP 관련 문제를 더 보려면 PHP 중국어 웹사이트를 방문하세요: PHP 비디오 튜토리얼
위 내용은 API 인터페이스와 호환되는 PHP 다차원 배열 재구성 방법 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!