• ベストアンサー

文字列を配列にしたい

お世話になります。 PHP4.3.9を利用しているのですが、以下のような文字列を分割して、求める形の配列に入れたいのですが、何か良い方法はありますでしょうか? ■文字列 abc=123&def=456&ghi=789 ■このような形にしたいと思っています↓ $hoge = array(   "abc"=>"123",   "def"=>"456",   "ghi"=>"789" ) ヒントだけでも結構ですので、ご教示いただけると幸いです。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

parse_strという関数があります。 http://jp2.php.net/manual/ja/function.parse-str.php 第二引数($arr)が追加されたのは4.0.3ですから、質問者さんの環境(4.3.9)なら問題なく使えます。 (e.g.) <?php $str = 'abc=123&def=456&ghi=789'; parse_str($str, $hoge); print "<pr>"; print_r($hoge); print "</pr>";

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.2です。 まったくの蛇足ですが、ANo.2の例示ソースでpre要素をprで書いてしまってますね(恥

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんなかんじ <?PHP $str="abc=123&def=456&ghi=789"; $pattern="/(?<=^|&)(.*?)=(.*?)(?=&|$)/"; preg_match_all($pattern,$str,$match); foreach((array) $match[1] as $key=>$val){ $hoge[$val]=$match[2][$key]; } print_r($hoge); ?>