- ベストアンサー
文字列を配列にしたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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)
ANo.2です。 まったくの蛇足ですが、ANo.2の例示ソースでpre要素をprで書いてしまってますね(恥
- yambejp
- ベストアンサー率51% (3827/7415)
こんなかんじ <?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); ?>
関連するQ&A
- 二次元配列の分割
よろしくお願いします。 $hoge = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"), "two" => array("abc" => "110", "def" => "210", "ghi" => "310"), "three" => array("abc" => "120", "def" => "220", "ghi" => "320") "four" => array("abc" => "130", "def" => "230", "ghi" => "330") ); というような配列があったとき、 abcが110以下のときと、110より大きい場合で分割した配列を 用意したいと考えてます。 具体的には、 $hoge1 = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"), "two" => array("abc" => "110", "def" => "210", "ghi" => "310"), ); と $hoge2 = array( "three" => array("abc" => "120", "def" => "220", "ghi" => "320") "four" => array("abc" => "130", "def" => "230", "ghi" => "330") ); に分割したいと考えています。 どのように記述すればよいのでしょうか?
- ベストアンサー
- PHP
- VBA:配列の中で文字列が何番目にあるか知りたい
たとえば Hairetu = Array("ABC","DEF","GHI") としておいて配列から"DEF"が何番目にあるのかを検索する方法はないのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 文字列になっている配列を‥
以下の値がDBに文字列の項目に登録されています。 DB から値を取得したのはいいのですが文字列なので foreach でグルグルしようとすると怒られてしまいます。 配列の型に変換できればいいのですが(array)だとうまく行かないしどうすればいいかどなたかご教授願えないでしょうか。 よろしくお願いします。 ■値(文字列でDBに格納されてます‥) array( 1=>'a', 2=>'b', 3=>'c', 10=>array( 'A'=>1, 'B'=>'hoge1', ), 11=>array( 'A'=>2, 'B'=>'hoge2', ), 12=>array( 'A'=>3, 'B'=>'hoge3', ), )
- 締切済み
- PHP
- QUERY_STRINGを連想配列に入れたい
よろしくお願いします。 $_SERVER['QUERY_STRING']の値 q1=abc&q2=def&q3=ghi を連想配列に入れたいと思います。 $array = array("q1"=>"abc","q2"=>"def","q3"=>"ghi"); どのようにしたらQUERY_STRINGの値を連想配列に入れられますか?
- ベストアンサー
- PHP
- 文字列スカラを3バイトごとのリスト値にしたい、最後のは3バイトで無くてもいい。
ある文字列を3バイト毎に配列に入れる書き方がわからず困っております。 $a = "ABCDEFGHIJK" @b = [ABC,DEF,GHI,JK]となって欲しいです。
- ベストアンサー
- Perl
- PHP 配列について
PHPで簡単なプログラムを作っています。 上手い方法があれば教えてください。 例えば $arr = array(); $arr(0) = "ABC"; $arr(1) = "DEF"; $arr(2) = "GHI"; $arr(3) = "JKL"; $arr(4) = "MNO"; この様な配列があり、これを以下の様に「特定のデータを削除し空いているキーを詰めたい」場合どうしたら良いのでしょうか? この場合は"DEF"を削除。 $arr(0) = "ABC"; $arr(1) = "GHI"; $arr(2) = "JKL"; $arr(3) = "MNO"; アドバイスお願いします。
- ベストアンサー
- PHP
- 区切り文字を配列に格納する方法を教えて下さい。
区切り文字を配列に格納する方法を教えて下さい。 $array[] = "abc,1981,1,12"; $array[] = "def,1982,2,18"; $array[] = "ghi,1991,4,12"; list($name[$i],$yy[$i],$mm[$i],$dd[$i]) = split("\,",$array[$i]); でループさせればそれぞれの変数に代入できますが、例えば $name["abc"]["yy"] = "1981"; $name["abc"]["mm"] = "1"; $name["abc"]["dd"] = "12"; のように分解するにはどうすれば良いでしょうか?
- 締切済み
- PHP
- 不特定数存在する特定文字直後にある文字を配列に入れる
perlとMySQLでデータベースを作っています。 だいぶ行き詰ってしまったので質問させてください。 以下のような一行の文字列が存在するとします。 ABC DEF @@@2222 EHI J @@@888 KL MN OPQR @@@632 ST この中から、 2222 888 632 を取り出して配列に格納することは可能でしょうか? 分割することは可能な気はするのですが、 それを配列に入れるとなるとどうにもならなくなってしまいました。 漠然とした質問で大変申し訳ないのですが、 なにかヒントになるものだけでもお気づきの方いらっしゃいましたら、 ぜひご教示くださいませ。
- ベストアンサー
- Perl
- 複雑な/による文字列の分割について
$str = "hello/$(hoge/$(hoge/good)/id)/namae"; このような文字列を/で以下のように分割して配列に入れようと考えています。 Array ( [0] => hello [1] => $(hoge/$(hoge/good)/id) [2] => namae ) しかし単にsplitで分割してもこのようにならないので正規表現でやりたいんですがどのようにしたらこのように分割できるでしょうか??
- ベストアンサー
- PHP