как получить значения отдельно из строки и преобразовать в массив? 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);