• ベストアンサー

配列内の値を分解して再格納

配列の中で「~」が含まれている値の「~」を取って 別々の値として格納するにはどうすれば良いでしょうか。 例 array(1,4,5~7,3~4,2)⇒array(1,4,5,7,3,4,2)

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

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

たとえばこう <?PHP $a=array("1","4","5~7","3~4","2"); $b=array(); foreach($a as $val){ $b=array_merge($b,explode("~",$val)); } print_r($b); ?>

25taku
質問者

お礼

できました!ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 多次元配列への格納

    よろしくお願いします。 多次元配列に値を格納したいのですが、これまでは、 $test = array ( 'father' => array ('hiroshi', 'toshi'), 'mother' => array ('hanako', 'yoshiko'), ); のように予め書かれてあるデータを使ってきましたが、この度やりたいのはある一つの通常の配列を20ずつ多次元配列に自動的に格納するスクリプトを作りたいと思っています。 $test = array ('hiroshi','toshi','masao',.....);と続く配列を、 $test = array ( 0 => array ('hiroshi',......(20個)), 1 => array (.......), ); と20ぐらいに区切って多次元配列にしたいです。 $test[0]に直接pushしたらWarning: array_push() [function.array-push]: First argument should be an array in..と叱られてしまいました。 どなたかわかる方がいましたらおしえてください。

    • ベストアンサー
    • PHP
  • 連想配列からの値の取り出し

    お世話様です。 タイトルにもありますが連想配列を作成した後(以下に記述例)に その配列からキーを指定して値を取得したいと思っております。 array_keys関数だと値を指定してキーを取得するみたいで うまくいきませんでした。 何かよい方法ありませんでしょうか? //配列に格納 while (条件) {   $aParaOra += array((キー) => (値)); }

    • ベストアンサー
    • PHP
  • 配列に格納された値の変更について

    お世話になります。現在下記のように配列に値を入れています $result=pg_query($db,$sql); $status=pg_result_status($result); $data=array(); while($row=pg_fetch_row($result)){ $data1[]=array("namae_id"=>$row[0],"namae"=>$row[1]); } 値を格納してからnamaeの部分の値を変更したいのですが、どのようにしたらいいでしょうか? 例えばnamae_id=4のnamaeの値を太郎から太郎 様という感じで変更したいのです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 配列の簡易な記載法ついて

    JavaScript初心者です。 20の要素を持つ配列があるとします。 そのうちの複数個に同一の値を入れるには下記のような冗長な書き方以外にどのようなものがあるのでしょうか? 例: 配列arrayの1,5,9,13,17番目にabcという値を格納する (※値を入れて宣言する以外の方法で) array[0] = array[4] = array[8] = array[12] = array[16] = "abc";   検索の仕方が悪いのか簡易な書き方が見つからなかったので、教えていただけると助かります!  

  • 配列に格納した値が保存されない

    DB(Access)から取得した内容を配列に格納し、その内容を取り出すプログラムを 以下のように書いてみました。 whileループ内の alert("ループの中=" + data_array[i]); では配列の中の値が参照できるのですが whileループの外で for(var i=0;i < data_array.length; i++){ alert("ループの外:" + data_array[i]); } 配列の中身を表示させようとしたところdata_array.length の長さが0になっており 配列の中身が参照できない状態です。なにが原因かわかりますでしょうか。 <html> <script language="javascript" type="text/javascript"> function dbSearch() { var sql="select * from URL where flg=0"; var database = dbConnect(); var recordSet = database.Execute(sql); var data_array = new Array(); while (!recordSet.EOF){ data_array[i] = recordSet(0); alert("ループの中=" + data_array[i]); recordSet.MoveNext(); } alert("長さ=" + data_array.length); for(var i=0;i < data_array.length; i++){ alert("ループの外:" + data_array[i]); } database.Close(); return; } //データベースに接続 function dbConnect() { var database = new ActiveXObject("ADODB.Connection"); database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\\test.mdb;"); return database; } </script> <body> <input type="button" value="DB接続" onclick="dbSearch()"> </body> </html>

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

    $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
  • 配列をほかの配列の値で複数のグループに分けする(新しい配列を作る)には

    配列をほかの配列の値で複数のグループに分けする(新しい配列を作る)にはどうすればよいのでしょうか? 以下のような配列があります。 $sensyu = Array( [0] => Array([IDs] => 1 [usName] => 小林 [uPosition] => センター) [1] => Array([IDs] => 2 [usName] => 山田 [uPosition] => ガード) [2] => Array([IDs] => 3 [usName] => 鈴木 [uPosition] => フォワード) [3] => Array([IDs] => 4 [usName] => 佐藤 [uPosition] => センター) [4] => Array([IDs] => 5 [usName] => 小林 [uPosition] => ガード) ) この配列を、別の配列($edited)の値でグループ分けしたいです。 例: $edited = array(2&4,1&5); $editedに[IDs]の値があるものはグループA($groupA)値が無いものはグループB($groupB)にする。 グループAは , でグループ分け($groupA[0],$groupA[1])となるようにする。 結果 $groupA = Array( [0] => Array( [0] => Array([IDs] => 2 [usName] => 山田 [uPosition] => ガード) [1] => Array([IDs] => 4[usName] => 佐藤 [uPosition] => センター) ) [1] => Array( [0] => Array([IDs] => 1 [usName] => 小林 [uPosition] => センター) [1] => Array([IDs] => 5 [usName] => 小林[uPosition] => ガード) ) ) $groupB = Array( [0] => Array([IDs] => 3 [usName] => 鈴木 [uPosition] => フォワード) もしくは$groupBを作らず元の配列を $sensyu = Array( [0] => Array([IDs] => 3 [usName] => 鈴木 [uPosition] => フォワード) とする。

    • 締切済み
    • PHP
  • [VBA]改行入りのセルの値を配列に格納したい

    EXCELのA列に下記のような値が入っています。 ----------- "aaa bb cccc" ----------- "ddd" ----------- "" ----------- "eee fff ggg hhh" ----------- といったようにセルの中の値に改行があったり、 なかったり、値すらなかったりといった感じです。 これを改行区切りで配列に入れたいんですが、いい方法ありませんか? 上の内容を下記のような配列にしたいんです。 arrValue=Array("aaa","bb","cccc") arrValue=Array("ddd") arrValue=Array("") arrValue=Array("eee","fff","ggg","hhh") よろしくお願いします。

  • 配列型の宣言?

    こんにちは。 あるサイトで見たphpのサンプルなのですが、 postされた全ての値を配列に格納するもので、以下のような記述がありました。 foreach((array)$_POST as $key => $value){  $array[$key] = $value; } ポストされた全ての値を、配列$arrayに連想配列として格納しているのはわかるのですが、 foreachの、(array)というのはどういう働きをするものなのでしょうか。 これは、$_POSTが配列であるという宣言でしょうか。 それと、postされた値がない場合、$_POSTを配列だと宣言しておくことで、foreachのエラーを回避するような役割もあるのでしょうか。 恥ずかしながら、(array)のような記述をphpではあまり見ないような気がするのですが、なんというキーワード(?)で勉強すれば理解が深められるかもご教授頂けますと助かります。 宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 配列に新しい値を加える

    配列に新しい値を加えようとしているのですが、どうもうまくいってくれません。array_push を使用してもうまくいかないのでどうしたものかと悩んでいます。 $fruits = "banana melon orange strawberry"; $fruits = explode (' ', $fruits); $fruits = array_push ($fruits, "apple"); print_r($fruits); とすると 5 が表示されます。一方3行目を消すと Array ( [0] => banana [1] => melon [2] => orange [3] => strawberry ) が表示されます。 配列に新しい値を加えるやり方をご存知の方おられましたらご教授くださるとうれしく思います。

    • ベストアンサー
    • PHP