2016-06-29 2 views
0

Так у меня есть структура URL:PHP Создание массива из обрезанного URL

/Окружающая среда/Key/Controller/Action/Parameter_Key1/Parameter_value1/Parameter_key2/Parameter_value2/др.

Количество параметров должно быть динамическим, так ofcoruse им с помощью этого:

$url_path = explode('/', trim($path,'/')); 

Я написал это для цикла, чтобы получить его работу

for($i = 4; $i < count($url_path); $i+2){ 
    $a = $i + 1; 
    $optional_params[$url_path[$i]] = $url_path[$a]; 
} 

Так что я хочу, чтобы массив $ optional_params в быть заполненным.

Как-то эти коды создают бесконечный цикл.

Сначала переменной $ a не было, я подумал, что это может помочь.

В любом случае, как я могу это сделать?

Так что массив будет создаваться следующим образом:

Array (Key1 => value1, key2 => значение2 и т.д.)

ответ

5

Ваша задача заключается в следующем:

for($i = 4; $i < count($url_path); $i+2){ 

Обратите внимание на третью секцию в вашей петле for: $i+2

Вы не назначаете это значение обратно на $i, так что $i остается 4, и у вас есть бесконечный цикл.

Понадобится:

for ($i = 4; $i < count($url_path); $i = $i + 2) { 
+0

о господи то будет такой глупой ошибкой рип .. –

+0

@RoyStijsiger один предложение вместо того, чтобы отправить его в использовании URL POST. более безопасный. И если вы можете настроить свой атрибут 'name', вы можете получить этот шаблон без дополнительной логики. –

+0

@ Обязательно его частичные параметры после postly url в зависимости от результата, который вы хотите, почти все - сообщение, кроме ID. –

Смежные вопросы