как получить значения отдельно из строки и преобразовать в массив? Php, Laravel

На сервере получаю строку в виде 1:1|2:3|3:5|4:6 может быть там всего 1:1, т.е нужно наверно сделать из них массив типа

lanuage_level = 
[
    ['lanuage' = 1, 'level' = 1],
    ['lanuage' = 2, 'level' = 3],
    ['lanuage' = 3, 'level' = 5],
    ['lanuage' = 4, 'level' = 6],
],


    class LanguageLevelController extends Controller
    {
        public function store(Request $request) {
            
            echo $request->language; //1:1|2:3|3:5|4:6 
        }
    }

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

Автор решения: Dmitry
// разбиваем строку на массив строк, используя в качестве разделителя символ |
$array = explode("|", "1:1|2:3|3:5|4:6");

// преобразуем получившийся массив строк в требуемый массив
$result = array_map(function($str) {
    // для этого каждую строку из массива разбиваем на массив значений,
    // используя в качестве разделителя символ :
    $values = explode(":", $str);
    // с помощью функции array_combine() создаем новый массив,
    // используя массив, переданный первым аргументом, в качестве ключей,
    // а массив $values в качестве значений
    return array_combine(["lanuage", "level"], $values);
}, $array);
→ Ссылка