3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'relation' => 'AND', [ 'taxonomy' => 'merk', 'field' => 'slug', 'terms' => ['coral'] ], [ 'taxonomy' => 'foo', 'field' => 'bar', 'terms' => ['stackoverflow'] ], [ 'taxonomy' => 'merk', 'field' => 'slug', 'terms' => ['deluxe', 'ultra'] ] ]; foreach ($array as $key => &$item) { if (is_array($item) && isset($item['taxonomy'], $item['field'])) { $id = $item['taxonomy'] . '_' . $item['field']; if (!isset($ref[$id])) { $ref[$id] = &$item['terms']; } else { array_push($ref[$id], ...$item['terms']); unset($array[$key]); } } } var_export($array);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array ( 'relation' => 'AND', 0 => array ( 'taxonomy' => 'merk', 'field' => 'slug', 'terms' => array ( 0 => 'coral', 1 => 'deluxe', 2 => 'ultra', ), ), 1 => array ( 'taxonomy' => 'foo', 'field' => 'bar', 'terms' => array ( 0 => 'stackoverflow', ), ), )

preferences:
102.39 ms | 407 KiB | 5 Q