2017-02-18 15 views
-1

を持つ配列に文字列を変換します。あなたは選択肢がないがあれば、あなたのニーズに応じて、これを構築する、あるいはvar_export()している場合は、JSONなどの別の形式を使用する必要がありますは、私は文字列変数を持つキー

$array['asd'] = 0 
$array['mogh'] = 1 
$array['for'] = 3 
+1

なぜですか?この文字列はどこにありますか? – AbraCadaver

+0

文字列は固定形式ですか? json_decodeを使い、文字列を '$ asd = '{" asd ":0、" mogh ":1、" for:3}';と指定するほうがずっと簡単です。 $ asd、true); (2番目の引数はオブジェクトの代わりに配列を返します) – Theo

答えて

0

:これは私が欲しいものである

preg_match_all('/\[([^\]]+)\] => (\d+)/', $asd, $matches); 
$array = array_combine($matches[1], $matches[2]); 

かそれをきれいにして、クエリ文字列に変換して解析することができます:

echo $asd = str_replace(array('[',']',' ','=>',','), array('','','','=','&'), $asd); 
parse_str($asd, $array); 
+0

クエリ文字列の解析をエミュレートする2番目のアプローチとして、 'ab [] = 1&ab [] = 2&...'のような配列があることがわかります。それは交換によって壊れるでしょう。しかし、もちろん私の発言はより複雑なケースに関係しています... – RomanPerekhrest

+0

so [asd] => 0、[mogh] => 1、[for] => 3はasd = 0&mogh = 1&for = 3になります。 –

+0

はい'asd = 0&mogh = 1&for = 3'。あなたが本当に欲しかったのは、Lemmeの推測ですね。 – AbraCadaver

関連する問題