Из ассоциативного массива в многомерный php
Есть ассоциативный массив, в значениях которого находятся строки. Мне нужно сделать части ассоциативного массива многомерными если там находится больше 1 строки разделенной запятой. Если обычным explode он создает массивы для всего что видит, пример
(
[Brand] => Array
(
[0] => iphone
)
[Model] => Array
(
[0] => 12
)
[Width] => Array
(
[0] => 2.38 in (inches)
[1] => 60.54 mm (millimeters)
[2] => 6.05 cm (centimeters)
)
)
А мне получается нужно: где строка не разделена запятой оставлять ее в прежнем состоянии
Array
(
[Brand] => iphone
[Model] => 12
[Width] => Array
(
[0] => 2.38 in (inches)
[1] => 60.54 mm (millimeters)
[2] => 6.05 cm (centimeters)
)
)
код
//получение массива значений
$valSpaces = array_map('trim', $valius);
// созданием многомерного
$finvals = array_map(fn($el)=>explode(',', $el), $valSpaces);
//объединение с ключами
$specifications = array_combine($keySpace,$finvals);
Ответы (1 шт):
Автор решения: Merantory
→ Ссылка
$arr = ['Brand' => ['iphone'],'Model' => [12],'Width' => [2.38,60.54,6.05]];
$second_arr = [];
foreach($arr as $key => $value){
if(count($value) == 1) $second_arr[$key] = $value[0];
else $second_arr[$key] = $value;
}