Преоброзавать строчку в массив

допустим у меня есть строчки 4-10;5-30;6-77. Как их преобразовать в такой массив:

$array = [
    4 => 10,
    5 => 30,
    6 => 77
];

Ответы (1 шт):

Автор решения: Dmitrii Sedov

Например так:

$str = '4-10;5-30;6-77';

$arr = explode(';', $str);
$arr = array_reduce($arr, function($res, $item) {
    $tempArr = explode('-', $item);
    $res[$tempArr[0]] = $tempArr[1];
    return $res;
}, []);
var_dump($arr);
→ Ссылка