1. <?php
  2. /**
  3. * Aggregates values from multiple API payloads.
  4. *
  5. * This function takes an array of API payload data and returns a
  6. * combined result. Assumes all payloads have the same structure.
  7. * Adapt the 'extractValue' function to match your specific payload structure.
  8. *
  9. * @param array $payloads An array of API payload arrays.
  10. * @return array An array containing the aggregated values. Returns an empty array if input is invalid.
  11. */
  12. function aggregateApiPayloads(array $payloads): array
  13. {
  14. if (empty($payloads)) {
  15. return []; // Handle empty input array
  16. }
  17. $aggregatedData = [];
  18. foreach ($payloads as $payload) {
  19. if (!is_array($payload)) {
  20. continue; // Skip invalid payload
  21. }
  22. $aggregatedData = array_merge($aggregatedData, extractValue($payload));
  23. }
  24. return $aggregatedData;
  25. }
  26. /**
  27. * Extracts a specific value from a single API payload.
  28. * Adapt this function to match the structure of your payloads.
  29. *
  30. * @param array $payload A single API payload array.
  31. * @return array An array containing the extracted value. Returns an empty array if the value is not found.
  32. */
  33. function extractValue(array $payload): array
  34. {
  35. $extracted = [];
  36. if (isset($payload['value1'])) {
  37. $extracted['value1'] = $payload['value1'];
  38. }
  39. if (isset($payload['value2'])) {
  40. $extracted['value2'] = $payload['value2'];
  41. }
  42. if (isset($payload['value3'])) {
  43. $extracted['value3'] = $payload['value3'];
  44. }
  45. return $extracted;
  46. }
  47. // Example Usage (for testing)
  48. $payload1 = ['value1' => 10, 'value2' => 20, 'value3' => 30];
  49. $payload2 = ['value1' => 40, 'value2' => 50, 'value3' => 60];
  50. $payload3 = ['value1' => 70, 'value2' => 80, 'value3' => 90];
  51. $allPayloads = [$payload1, $payload2, $payload3];
  52. $aggregatedResult = aggregateApiPayloads($allPayloads);
  53. print_r($aggregatedResult);
  54. ?>

Add your comment