w_b_x
@w_b_x

Преобразовать строку в массив на php?

Добрый день!

В общем, есть следующая строка:
name=%D0%98%D0%BB%D1%8C%D1%8F;phone=89213251626

Нужно на php получить массив вида:
$array["name"] = "%D0%98%D0%BB%D1%8C%D1%8F";
$array["phone"] = "89213251626";

Делаю, для того чтобы в итоге раскодировать name на вывод (url decode) :)
  • Вопрос задан
  • 1397 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rema1ns
@Rema1ns
и так сойдет
$arr = explode(';', 'name=%D0%98%D0%BB%D1%8C%D1%8F;phone=89213251626');
foreach($arr as $item) {
    $tmp  = explode('=', $item);
    $array[$tmp[0]] = $tmp[1];
}


Это самый простой способ, также можно регулярками разбить.

Метод 2 еще проще;
сначала заменяете все ';' на &
$arr = null;
$returnValue = parse_str('name=%D0%98%D0%BB%D1%8C%D1%8F&phone=89213251626', $arr);

//результат 
array (
  'name' => 'Илья',
  'phone' => '89213251626',
)
Ответ написан
Комментировать
@heahoh
Full stackoverflow developer
$result = array();
$stringParams = 'name=%D0%98%D0%BB%D1%8C%D1%8F;phone=89213251626';
$paramsArray = explode(';', $stringParams);
foreach ($paramsArray as $item) {
    list($k, $v) = explode('=', $item);
    $result[$k] = $v;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы