Если вам нравятся языковые конструкции и базовые c арифметические c, тогда вы можете просто l oop через массив, разделить на 3 и использовать это значение с плавающей запятой в качестве ключа первого уровня - php автоматически floor()
это значение для формирования целого числа
Код: ( Демо )
foreach ($array as $index => $subarray) {
$key = key($subarray);
$result[$index / 3][$key] = $subarray[$key];
}
var_export($result);
В качестве альтернативы, если вы предпочитаете функциональный синтаксис (а я часто это делаю), вы может формировать группы подмассивов, а затем объединять / сглаживать группы. Приведенный ниже метод не требует объявления переменной $result
и может быть записан как однострочный.
Код: ( Demo )
var_export(
array_map(
function($v) {
return array_merge(...$v);
},
array_chunk($array, 3)
)
);
Оба метода дают следующий результат:
array (
0 =>
array (
'term_title' => 'black',
'color_quantity' => 2,
'color_price' => 22,
),
1 =>
array (
'term_title' => 'blue',
'color_quantity' => 3,
'color_price' => 33,
),
)