Преобразование строки в ассоциативный массив PHP

У меня есть строка:

string(133) "'status' => '-1','level1' => '1', 'level2' => '1', 'level9' => '1', 'level10' => '1', 'start' => '2013-12-13', 'stop' => '2013-12-13'" 

Как создать ассоциативный массив? Результат должен быть следующим:

 array('status' => '-1', 'level1' => '1', ....); 

Пожалуйста помоги.

    Попробуйте это (с плохими именами рабочих переменных, но с их работой) –

     <?php $str = "'status' => '-1','level1' => '1', 'level2' => '1', 'level9' => '1', 'level10' => '1', 'start' => '2013-12-13', 'stop' => '2013-12-13'"; $mstr = explode(",",$str); $a = array(); foreach($mstr as $nstr ) { $narr = explode("=>",$nstr); $narr[0] = str_replace("\x98","",$narr[0]); $ytr[1] = $narr[1]; $a[$narr[0]] = $ytr[1]; } print_r($a); 

    Codepad Link – http://codepad.org/EqysY1CZ

    Самый быстрый и простой, но ДЕЙСТВИТЕЛЬНО ИНСЕКУРС

     $str = "array('3'=>'www.tension.com','1'=>'www.seomeuo.com','requestedBy'=>'1')"; eval("\$array = $str;"); 

    Вы никогда не должны использовать этот подход, есть еще один способ сделать это: serialize() и unserialize()

    попробуйте этот код и используйте метод explode () и foreach, чтобы получить результат

     <?php $string="'status' => '-1','level1' => '1', 'level2' => '1', 'level9' => '1', 'level10' => '1', 'start' => '2013-12-13', 'stop' => '2013-12-13'"; $a=explode("=>",$string); $c=array(); $i=0; foreach($a as $k=>$v){ if($i%2==0){ $b[]=$v; }else{ $c[]=$v; } $i++; } $d=array_combine($b,$c); print_r($d); ?> 

    Я хотел практиковать регулярное выражение. Одна большая проблема заключается в том, что ваша строка имеет как ',' и ', ' качестве разделителей, поэтому вам нужно это исправить.

     <?php $var = "'status' => '-1','level1' => '1', 'level2' => '1', 'level9' => '1', 'level10' => '1', 'start' => '2013-12-13', 'stop' => '2013-12-13'"; $var = str_replace(', ', ',', $var); $rows = explode(',', $var); $array = []; foreach($rows AS $row){ preg_match("/^'(.+)' \=\> '(.+)'\$/", $row, $matches); $array[$matches[1]] = $matches[2]; } var_dump($array); ?> 

    Пример: http://ideone.com/4oad4t

    Грязная логика здесь 🙂

     <?php $str="'status' => '-1','level1' => '1', 'level2' => '1', 'level9' => '1', 'level10' => '1', 'start' => '2013-12-13', 'stop' => '2013-12-13'"; echo $str='$arr='.'array('.$str.');'; eval($str); echo "<pre>"; print_r($arr); ?> 

    Вам нужно использовать функцию explode в PHP.
    refer-> http://cz1.php.net/explode