PHPでスペースで区切って配列に格納する方法

このQ&Aのポイント
  • PHPでスペースで区切られた一文を配列に格納し、それを出力する方法について教えてください。
  • 具体的な例として、$word変数にスペースで区切られた一文が格納されている場合、それを配列に分割して出力する方法を知りたいです。
  • 出力結果が「あいうえおかきくけこ」となるように、PHPでスペースで区切って配列に格納する方法を教えてください。
回答を見る
  • ベストアンサー

PHPプログラミング スペースで区切って配列に格納

こんにちは。質問お願いいたします。 PHPで、スペースで分けられた一文を区切って、配列に格納し、その配列が終わるまで出力するにはどうすればよいのでしょうか。 例えば、 $word = あいう えお かきく けこ という一文があったとして、配列にスペースで区切って word[0] = あいう; word[1] = えお; word[2] = かきく; word[3] = けこ; と格納し、 echo $word[0]から入っているものがなくなるまで繰り返す ; 出力結果は あいうえおかきくけこ という風にしたいです。 どうすればよいのでしょうか。 お手数をお掛けしますが、よろしくおねがいします。

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13277)
回答No.1

$word = 'あいう えお かきく けこ'; $word_2 = explode(' ', $word); foreach ($word_2 as $Value) { echo $Value; }

rieqop7
質問者

お礼

昨日は別の質問でもお世話になりました。大変参考になるコードを早速教えていただき、感謝いたします。実行できました。ありがとうございました。

その他の回答 (1)

  • thezen5
  • ベストアンサー率84% (27/32)
回答No.2

1さんの方法が柔軟性があり最適ですが ただ分解した後もう一度くっつけるだけならimplode()でも済ますことができます。 $word = 'あいう えお かきく けこ'; $word_2 = explode(' ', $word); echo implode('',$word_2);

rieqop7
質問者

お礼

ありがとうございます。大変参考になりました。

関連するQ&A

  • PHPで配列に格納されたデータを表示させるには。

    PHPで配列に格納されたデータを表示させるには。 全ての配列の要素を表示させることは下のようにすればできるのはわかります。 <?php for($i=0;$i<sizeof($data);$i++){ echo $data[$i]; echo "<br>"; } ?> 配列の0~9まで(10個)をまず表示させて、「次へ」のようなリンクで次の10~19までを表示させるようにしたいのですが、どのようにすればよいのでしょうか。

    • ベストアンサー
    • PHP
  • 句点“。”で区切り、“。”も含めた上で配列に格納したい

    句点“。”で区切って“。”も含めた上で、一文一文配列に格納したのですが、なにかいい方法ありますか? Stringオブジェクトのsplit()メソッドは、句点“。”を含まず、配列に格納してしまうため、使用したくありません。 よろしくお願いします。

  • JavaScriptとPHPの配列

    現在、JavaScriptで配列を持っています。 str=[20,38,24,18,23,26,-,20,38.4,18,23,-,2009,01,09,15,13,24,] この配列を順序を変えずにPHP配列としてもつことは可能でしょうか? $arr(20,38,24,18,23,26,-,20,38.4,18,23,-,2009,01,09,15,13,24); 後々、この配列を用いてtextboxに値を格納したいので、 <input type="text" name="ta0"size ="2" value="<?php echo $arr[2]; ?>">s で、利用したいです。 document.write()で書く方法もあると思いますが valueに値として入れることができませんでした。 方法をご存知の方、よろしくご教授お願いいたします。

  • テキストを多次元配列に格納したい

    $text="1;2;3:4;5;6:7;8;9:10;11;12:…"; $tmp = split(":",$text); これでtmpで格納された1;2;3、4;5;6、7;8;9、10;11;12をさらに分けて、多次元配列で格納しようと思います。 すなわち多次元配列"arrayについて、 print_r($array[0])の出力結果がArray ( [0] => 1 [1] => 2 [2] => 3 ) print_r($array[2])の出力結果がArray ( [0] => 7 [1] => 8 [2] => 9 ) となるような感じです。 しかし自分ではtmpからarrayへの変換がうまくいきません。 どなたかこのような働きをするコードを教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルの読み込み、配列に格納

    お世話になります。Java初心者です Javaプログラムを実行する同じディレクトリにあるテキストファイルとデータファイルをコマンドラインで同時に読み込み それぞれ違う配列に格納したいのですが、1つのファイルの読み込みは出来ても2つ同時の読み込みと配列格納でつまづいています。 読み込むテキストファイルには以下のような1行の文が、 Dr. Fujita is great! 読み込むデータファイルには以下のような文字が書かれています。 AC 4C 7C 10C KC 3D 6D 9D QD JB 3C 6C 9C QC 2D 5D 8D JD JA 2C 5C 8C JC AD 4D 7D 10D KD 配列に格納する際、テキストファイルの場合は全て大文字にし、アルファベット以外の記号(スペース含)は全て消して配列に格納します。 上の例でいえばこのような状態で格納です↓ DRFUJITAISGREAT データファイルの場合は、2組1文字をそのまま配列に格納です。ただしスペースは飛ばします。 上の例でいえば、ACを配列0に、4Cを配列1に、7Cを配列2に、、、と格納していきます。 import java.io.*; public class sample{ public static void main(String[] args){ try{ FileReader f = new FileReader(args[0]); BufferedReader b = new BufferedReader(f); Strings; while((s=b.readLine())!=null){ System.out.println(s); ←読み込んでるか確認 } }catch(Exception e){ System.out.println(no file); } } } ファイルの指定は実行時に、java sample datafile.dat textfile.txt と指定します。 読み込むプログラムは以上のように書いたのですが、2つファイルを読み込むにはどのように記述したらよいのでしょうか。 FileReaderを2つ作成?しても最初に指定したデータファイルの内容がまた読み込まれるだけで・・・ 読み込んだら変数sに入りますが、たとえばs.substring()なんかでわけて配列に入れようとしても、s.substring()←ここでエラーが出てしまいます。 あと、Dr. Fujita is great!のアルファベットを大文字にし、記号(スペース含)を飛ばして格納するにはどうしたらよいのでしょうか。 宜しくお願いします

    • ベストアンサー
    • Java
  • powershellの配列について

    すみませんが、powershellの配列について、困っていることがあります。 下記に教えていただければと思います。 【やりたいこと】 スペースがバラバラに入っているファイルの中身を配列に格納したい。 その際、スペースを省いて数字のみ配列に入れたい 【今の状態】 > $test4 = $(Get-Content -path "C:\a.txt") > echo $test4 1 2 3 4 5 6 7 89 > write-host $test4[0] 1 > write-host $test4[1] (スペースが認識されてしまう) > write-host $test4[2] 2 【望む結果】 $test4にファイルの中身を格納する。 その後、以下の結果にしたい。 > write-host $test4[0] 1 > write-host $test4[1] 2 > write-host $test4[7] 89

  • phpからas3へ配列の渡し方を教えてください。

    phpからas3へ配列の渡し方を教えてください。 ActioScript3.0からphpへ変数を渡し、phpでsqlによって得たデータを配列に格納し、その配列をas3へ渡そうと思っています。 変数だと以下記述で実現できましたが、もしsqlが複数件取得した際には対応できていません。 ■php側からas3へ変数を渡す箇所 echo "comp=".$teamname; ■as3側の受け取り箇所 function getTeamInfo(event:Event):void { var team_info:URLVariables=new URLVariables(event.target.data); st_team=team_info.comp; } 以上、よろしくお願いします。

    • ベストアンサー
    • Flash
  • PHP preg_match_all関数の配列をMysqlに格納したい

    PHP preg_match_all関数の配列をMysqlに格納したい PHP初心者です。 preg_march_all関数を使って正規表現でマッチングする練習を行っています。 preg_march_allを使った場合、マッチングした結果が多次元配列となって出力されると思うのですが、それらをそれぞれのレコードに分けてMysqlに格納したいと思っています。 php入門サイトのものを弄って作ったのですが、 while (! feof($fp)) { $s = fgets($fp); $n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER); for ($i = 0; $i < $n; $i++) mysql_query("insert into seikihyougen1 (benri) value ('$ar[$i][2]')"); } 結果はマッチングした数のレコード分、benriカラムにArray[2]という文字列が入力されてしまいます。 これらをマッチングした文字列に直してMysqlに入れるにはどうすればよいのでしょうか?

    • ベストアンサー
    • PHP
  • PHP の スペースシップ演算子について

    お世話になります。 PHP の スペースシップ演算子について、使い方をネットで調べていましたら、次のようなコードを見つけました。 この中で、配列の並べ替えのための usort( ) のコールバック関数としている my_sort( ) の中で、<=> 演算子が使われています。この演算子は左側と右側のオペランドを比べて -1, 0, 1 のいずれかを返すということなのですが、この戻り値がどのように配列の要素を並べ替えるのに使われているのか、そのメカニズムが理解できません。 どなたか詳しく説明していただけると有難く思います。どうかよろしくお願いいたします。 function my_sort($a, $b) { return $a <=> $b; } $ary = array(4, 2, 8, 6, 1, 3); usort($ary, 'my_sort'); echo "<pre>"; print_r($ary); echo "</pre>"; この結果は 以下の様です。 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 [5] => 8 )

    • ベストアンサー
    • PHP
  • phpで、配列の値が意図せず変わってしまいます。

    環境はphp4です。 for、もしくはforeachを使って配列の中身を変えたいと思っています。 $array1 = array(123csv, 456csv, 789csv); for($a = 0; $a <= count($array1) -1; $a++){ $array2[] = "a" . $array1[$a]; } echo $array1[0]; echo $array2[0]; 上記の出力結果がなぜか異なり困っています。 array1[0]は「123csv」、 array2[0]は「a113csv」、もしくは「a12300v」 などとなってしまいます。 先頭に「a」を付加しない場合も「113csv」、もしくは「12300v」という結果です。 ちなみに$array1はexplodeを使って空白文字をを分割して作成した配列です。 これなバグなのでしょうか。 原因、回避策など、いろいろ調べましたが検討がつきません。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう