<?php
/**
* Aggregates values from multiple API payloads.
*
* This function takes an array of API payload data and returns a
* combined result. Assumes all payloads have the same structure.
* Adapt the 'extractValue' function to match your specific payload structure.
*
* @param array $payloads An array of API payload arrays.
* @return array An array containing the aggregated values. Returns an empty array if input is invalid.
*/
function aggregateApiPayloads(array $payloads): array
{
if (empty($payloads)) {
return []; // Handle empty input array
}
$aggregatedData = [];
foreach ($payloads as $payload) {
if (!is_array($payload)) {
continue; // Skip invalid payload
}
$aggregatedData = array_merge($aggregatedData, extractValue($payload));
}
return $aggregatedData;
}
/**
* Extracts a specific value from a single API payload.
* Adapt this function to match the structure of your payloads.
*
* @param array $payload A single API payload array.
* @return array An array containing the extracted value. Returns an empty array if the value is not found.
*/
function extractValue(array $payload): array
{
$extracted = [];
if (isset($payload['value1'])) {
$extracted['value1'] = $payload['value1'];
}
if (isset($payload['value2'])) {
$extracted['value2'] = $payload['value2'];
}
if (isset($payload['value3'])) {
$extracted['value3'] = $payload['value3'];
}
return $extracted;
}
// Example Usage (for testing)
$payload1 = ['value1' => 10, 'value2' => 20, 'value3' => 30];
$payload2 = ['value1' => 40, 'value2' => 50, 'value3' => 60];
$payload3 = ['value1' => 70, 'value2' => 80, 'value3' => 90];
$allPayloads = [$payload1, $payload2, $payload3];
$aggregatedResult = aggregateApiPayloads($allPayloads);
print_r($aggregatedResult);
?>
Add your comment