Один из вариантов - подготовить массив функций для зацикливания ключей и значений.
Например, используя array_reduce и explode , чтобы получить массив, в котором ключи являются частью перед :
, а значения представляют собой результат взрыва с ,
в качестве разделителя:
$features = [
"width with: 100 m",
"method: Nail Down",
"method: Main Floor",
"Warranty: 25 years",
"Color: Red",
"Color: Blue"
];
$features = array_reduce($features, function($carry, $item){
$parts = explode(":", $item);
$carry[$parts[0]][] = $parts[1];
return $carry;
});
foreach ($features as $key => $value) {
echo "$key: " . implode(',', $value) . PHP_EOL;
}
Выход
width: 100 m
method: Nail Down, Main Floor
Warranty: 25 years
Color: Red, Blue
См. Php демо