閲覧ありがとうございます。
数値の文字列があり、それを先頭が同じ数値のもの同士を一つの配列に整理して入れるということをやりたいと思っています。
HTML
1200#0#2500#200#0 2100#0#2500#200#0 3100#0#2500#200#0 4100#0#2500#200#0 5200#300##10000#400##5000 6200#0#2500#200#0 780#0#1000#100#0
このような文字列がテキストエリア内から送信され、
取得して計算し、結果を返すという処理です。
途中までできたのですが、先頭が同じ数値のものをまとめられず、その先の処理に進めない状態です。
まずは、一行ずつ配列に格納しています。
PHP
1print_r($hoge); 2Array 3( 4 [0] => 200#0#2500#200#0 5 [1] => 100#0#2500#200#0 6 [2] => 100#0#2500#200#0 7 [3] => 100#0#2500#200#0 8 [4] => 200#300##10000#400##5000 9 [5] => 200#0#2500#200#0 10 [6] => 80#0#1000#100#0 11) 12 13$hoge_list = array(); 14$nowValue = -1; 15$nowIndex = -1; 16foreach($hoge as $data) { 17 if(preg_match('/^\d+/' , $data , $match) !== 1) { 18 exit(1); 19 } 20 if($match[0] <> $nowValue) { 21 $nowValue = $match[0]; 22 $nowIndex++; 23 } 24 $hoge_list[$nowIndex][] = $data; 25} 26print_r($hoge_list); 27 28Array 29( 30 [0] => Array 31 ( 32 [0] => 200#0#2500#200#0 33 ) 34 [1] => Array 35 ( 36 [0] => 100#0#2500#200#0 37 [1] => 100#0#2500#200#0 38 [2] => 100#0#2500#200#0 39 ) 40 [2] => Array 41 ( 42 [0] => 200#300##10000#400##5000 43 [1] => 200#0#2500#200#0 44 ) 45 [3] => Array 46 ( 47 [0] => 80#0#1000#100#0 48 ) 49)
こういった形で、同じ数値の記述が連続して書かれていないと、うまく取得できていないようです。
今回だと、「200#0#2500#200#0」の数値が独立してしまっています。。
結果として、以下のような結果を期待しています。
HTML
1Array 2( 3 [0] => Array 4 ( 5 [0] => 80#0#1000#100#0 6 ) 7 [1] => Array 8 ( 9 [0] => 100#0#2500#200#0 10 [1] => 100#0#2500#200#0 11 [2] => 100#0#2500#200#0 12 ) 13 [2] => Array 14 ( 15 [0] => 200#0#2500#200#0 16 [1] => 200#300##10000#400##5000 17 [2] => 200#0#2500#200#0 18 ) 19)
独立していた「200#0#2500#200#0」がきちんと、200から始まる行なので、配列に入っています。
ご教授頂けますと幸いです。
宜しくお願い致します。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。