fork download
  1. <?php
  2.  
  3. $orders = [
  4. 0 =>[
  5. "order_id" => 4,
  6. "firstname" => 'Василий',
  7. "telephone" => '+38(066)385-45-22',
  8. "shipping_address_1" => 'отделение 55',
  9. "shipping_city" => 'Жмеринка',
  10. "shipping_method" => 'Фиксированная стоимость доставки',
  11. "total" => 5300.00,
  12. "name" => 'Гранитная мойка Valetti mod18 775х500 Серый',
  13. "quantity" => 2,
  14. "price" => 2650.00,
  15. ],
  16. 1 => [
  17. "order_id" => 4,
  18. "firstname" => 'Василий',
  19. "telephone" => '+38(066)385-45-22',
  20. "shipping_address_1" => 'отделение 55',
  21. "shipping_city" => 'Жмеринка',
  22. "shipping_method" => 'Фиксированная стоимость доставки',
  23. "total" => 2890.00,
  24. "name" => 'Гранитная мойка Valetti mod14 655х500 Черный',
  25. "quantity" => 1,
  26. "price" => 2890.00,
  27. ],
  28. ];
  29.  
  30. $merged = [];
  31.  
  32. foreach ($orders as $order) {
  33. foreach ($order as $key => $item) {
  34. switch ($key) {
  35. case 'quantity':
  36. case 'total':
  37. $merged[$key] = (false === isset($merged[$key])) ? $item : $merged[$key] + $item;
  38. break;
  39. case 'name':
  40. $merged[$key] = (false === isset($merged[$key])) ? $item : $merged[$key] . " *** " . $item;
  41. break;
  42. case 'price':
  43. break;
  44. default:
  45. $merged[$key] = $item;
  46. break;
  47. }
  48. }
  49. }
  50.  
  51.  
  52. print_r($merged);
Success #stdin #stdout 0.02s 24444KB
stdin
Standard input is empty
stdout
Array
(
    [order_id] => 4
    [firstname] => Василий
    [telephone] => +38(066)385-45-22
    [shipping_address_1] => отделение 55
    [shipping_city] => Жмеринка
    [shipping_method] => Фиксированная стоимость доставки
    [total] => 8190
    [name] => Гранитная мойка Valetti mod18 775х500 Серый *** Гранитная мойка Valetti mod14 655х500 Черный
    [quantity] => 3
)