2015-03-02 2 views
0

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

Как я правильно превратить GET строку со значением "статус [30]" в массив, как:

array (status => 30); 

я мог бы использовать что-то вроде этого:

$arr = array ('status' => str_replace(array('status[', ']'), null, $_GET['status'])); 

но должен быть лучший способ.

+0

Можете ли вы показать пример GET строки вы работаете? –

+1

Не можете ли вы просто $ arr [] = $ _GET ["Status"]? –

+0

На самом деле, возможно, более важно то, как вы получаете эту переменную '$ _GET' в первую очередь? Это HTML-форма? –

ответ

2
$arr = []; 
$getValue = "status[30]"; 

if (preg_match('#(\w+)\[(\w+)\]#', $getValue, $matches)) 
    $arr[$matches[1]] = $matches[2]; 

print_r($arr); 

Выход:

Array 
(
    [status] => 30 
) 
+0

Без проверки ошибок ваш код также может быть '$ arr = [" status "=> 30];'. Просто говорю ... –

+0

Хе-хе, thx, исправлено это. – mhall

+0

Спасибо, это сработало просто отлично – Peon

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