Объединение результатов API Wufoo
Я работаю с API Wufoo ( https: // {поддомен}.wufoo.com/api/v3/forms/{formIdentifier}/ records.{Xml | json}), пытаясь получить все мои записи, в настоящее время около 150, как один массив PHP. Wufoo ограничивает число возвращаемых записей до 100. Так что теперь у меня есть два php-массива, которые я хотел бы объединить / объединить в один массив.
Кодекс до сих пор:
$api_uri_1 = "https://example.wufoo.com/api/v3/forms/example-form/entries.json?pageStart=0&pageSize=100";
$api_uri_2 = "https://example.wufoo.com/api/v3/forms/example-form/entries.json?pageStart=1&pageSize=100";
function wufoo_api($api_uri) {
$curl = curl_init($api_uri);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'WUFOO-API-KEY-HERE:password');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_USERAGENT, 'Wufoo Sample Code');
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
if ($resultStatus['http_code'] == 200) {
$results = json_decode($response, true);
return $results;
} else {
$results = 'Call Failed '.print_r($resultStatus);
return $results;
}
}
$result1 = wufoo_api($api_uri_1);
$result2 = wufoo_api($api_uri_2);
То, что я пробовал и не сработало
$all_results = array_merge($result1, $result2);
и как то так
$all_results = $result1;
$all_results += $result2;
Как я могу объединить / объединить результат1 и результат2
Заранее благодарю за любую помощь
Обновлено: что сработало
Благодаря Ben я понял, что мне нужно использовать ключ массива для нацеливания частей массива, которые мне нужны.
$all_results = array_merge($result1['Entries'],$result2['Entries']);
1 ответ
Результат от json_decode будет содержать корневой элемент (записи в соответствии с API).
Вы должны получить доступ к массиву записей через $result1['Entries'], поэтому, чтобы объединить записи, вам нужно сделать что-то вроде:
$all_results = array_merge($result1['Entries'],$result2['Entries']);
или же
$all_results = $result1['Entries'];
$all_results += $result2['Entries'];
также для случая сбоя, это должно быть
$results = 'Call Failed '.print_r($resultStatus,true);
(иначе вы выводите результат print_r, а не возвращаете его)