0

Let's say I have 3 arrays:

^ array:1 [▼
  "london" => array:3 [▼
    0 => array:4 [▼
      "car" => "audi"
      "max_price" => "20000"
      "min_price" => "500"
      "total" => "500"
    ]
    1 => array:4 [▼
      "car" => "bmw"
      "max_price" => "50000"
      "min_price" => "1000"
      "total" => "2000"
    ]
    2 => array:4 [▼
      "car" => "mercedez"
      "max_price" => "100000"
      "min_price" => "5000"
      "total" => "50"
    ]
  ]
]
^ array:1 [▼
  "miami" => array:3 [▼
    0 => array:4 [▼
      "car" => "bmw"
      "max_price" => "12348"
      "min_price" => "369"
      "total" => "123"
    ]
    1 => array:4 [▼
      "car" => "mercedez"
      "max_price" => "98888"
      "min_price" => "1500"
      "total" => "369"
    ]
    2 => array:4 [▼
      "car" => "audi"
      "max_price" => "1588"
      "min_price" => "100"
      "total" => "50"
    ]
  ]
]
^ array:1 [▼
  "roma" => array:3 [▼
    0 => array:4 [▼
      "car" => "mercedez"
      "max_price" => "20000"
      "min_price" => "500"
      "total" => "500"
    ]
    1 => array:4 [▼
      "car" => "bmw"
      "max_price" => "50000"
      "min_price" => "1000"
      "total" => "2000"
    ]
    2 => array:4 [▼
      "car" => "audi"
      "max_price" => "100000"
      "min_price" => "5000"
      "total" => "50"
    ]
  ]
]

and I want the final output to be:

^ array:3 [▼
  "audi" => array:3 [▼
    "london" => array:3 [▼
      "max_price" => "20000"
      "min_price" => "500"
      "total" => "500"
    ]
    "miami" => array:3 [▼
      "max_price" => "1588"
      "min_price" => "100"
      "total" => "50"
    ]
    "roma" => array:3 [▼
      "max_price" => "100000"
      "min_price" => "5000"
      "total" => "50"
    ]
  ]
  "bmw" => array:3 [▼
    "london" => array:3 [▼
      "max_price" => "50000"
      "min_price" => "1000"
      "total" => "2000"
    ]
    "miami" => array:3 [▼
      "max_price" => "12348"
      "min_price" => "369"
      "total" => "123"
    ]
    "roma" => array:3 [▼
      "max_price" => "50000"
      "min_price" => "1000"
      "total" => "2000"
    ]
  ]
  "mercedez" => array:3 [▼
    "london" => array:3 [▼
      "max_price" => "100000"
      "min_price" => "5000"
      "total" => "50"
    ]
    "miami" => array:3 [▼
      "max_price" => "98888"
      "min_price" => "1500"
      "total" => "369"
    ]
    "roma" => array:3 [▼
      "max_price" => "20000"
      "min_price" => "500"
      "total" => "500"
    ]
  ]
]

So basically I want to merge those arrays and group them by car, not by city. Simple array_merge will not work. I can start with the first array and then loop through all other arrays while generating new arrays, but that seems not efficient. Is there any better option?

John Stockton
  • 312
  • 1
  • 4
  • 16

0 Answers0