ホームページ  >  記事  >  バックエンド開発  >  PHPでこのような文字列を配列に変換する方法

PHPでこのような文字列を配列に変換する方法

WBOY
WBOYオリジナル
2016-06-23 14:22:46927ブラウズ

この投稿は、tangl198710 によって 2011-08-12 12:11:55 に最終編集されました

文字列は次のとおりです:

{'aid':'21','ctl_a_cpu':'df','ctl_a_ram': 'df' ,'ctl_a_disk':'df','ctl_a_fip':'df','ctl_a_os':'c_1_2','ctl_a_os_lang':'c_4_1,c_4_3','comment':'その他の要件','はは' ,'' ,'total':'1090','typeid':'6'}

このような文字列を配列に変換して使用するにはどうすればよいでしょうか?

上記の文字列を配列に変換します。数値の前が添え字、後ろが値です。 対処方法は、専門家にアドバイスをいただければ幸いです

ディスカッションへの返信(解決策)

$str = <<<EOF{'aid':'21','ctl_a_cpu':'df','ctl_a_ram':'df','ctl_a_disk':'df','ctl_a_fip':'df','ctl_a_os':'c_1_2','ctl_a_os_lang':'c_4_1,c_4_3','comment':'其它要求\',\'呵呵\',\'','total':'1090','typeid':'6'}EOF;$ar = json_decode($str, true);print_r($ar);

json_decode この関数を使用する際の特別な注意事項は何ですか?印刷すると空白になってしまいましたが、別の解決方法を見つけました。でも、json_decode 関数の使い方を知りたいです

先生、あなたの形式は間違っています
json データを出力するためにどのツールを使用したかわかりません

この例を見てみましょう

$str1 =' {"a":21 }'
$str2="{"b":21}"
print_r(json_decode($str1,true)); print_r(json_decode($str2 ,true));
print_r(json_decode($str3,true));


出力結果は Array ([a] => 21) Array ([b] => 21) です。

3 番目の print_r 出力は空白です



json_decode ( string $json [, bool $assoc ] )

JSON 形式の文字列を受け入れ、それを PHP 変数に変換します


パラメータ
json
変換される JSON 文字列形式の文字列デコードされた。

assoc
このパラメータが TRUE の場合、オブジェクトの代わりに配列が返されます。




上記と同様に、この文字列を直接 json_decode します。

次のように書きます:

json_decode($str, true);
trueを追加しないとオブジェクトに変換されるので注意してください

さて。 。当然のことながら、これは json_decode() で直接処理できないため、手動で変換する必要があります:

$str = <<<EOF{'aid':'21','ctl_a_cpu':'df','ctl_a_ram':'df','ctl_a_disk':'df','ctl_a_fip':'df','ctl_a_os':'c_1_2','ctl_a_os_lang':'c_4_1,c_4_3','comment':'其它要求\',\'呵呵\',\'','total':'1090','typeid':'6'}EOF;$ar = explode("','", substr($str, 2, -2));$result = '';foreach($ar as $v) {   $ar_tmp = explode("':'", $v);   $result[$ar_tmp[0]] = $ar_tmp[1];}echo '<pre class="brush:php;toolbar:false">';print_r($result);


PHP 配列の基本

http://3aj.cn/php/39.html

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。