• 締切済み

データの配列

POSTで送られたデータから配列を作りたいのです。 下記はPOSTのデータをprint_r($_POST)で全て表示していますが、 この中から[NO0~11]までを array([0]=>11 [1]=>6 ~)というような形で配列として表示したので すが、方法が分かりません。 Array ( [N00] => 11 [NAME0] => a [N01] => 6 [NAME1] => b [N02] => 9 [NAME2] => c [N03] => 3 [NAME3] => d [N04] => 12 [NAME4] => e [N05] => 10 [NAME5] => f [N06] => 1 [NAME6] => g [N07] => 5 [NAME7] => h [N08] => 2 [NAME8] => i [N09] => 7 [NAME9] => j [N010] => 4 [NAME10] => k [N011] => 8 [NAME11] => l)

みんなの回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

No.1の方の補足。 こっちのほうが早いすよ。preg系は複雑なことをしない限り使わないほうがいいです。 $arr = array(); // 目的の配列を格納するバッファ $req = $_POST; // requestのコピー // requestの配列ごとにループ foreach($req as $key => $value) {  // キーに"NO"が0番目の文字列に存在した場合  if(strpos($key, "NO") == 0) {   // バッファの最後に追加   $arr[] = $value;  } } // 出力 print_r($arr); >質問者様 マニュアルの熟読をお勧めします。

参考URL:
http://php.benscom.com/download-docs.php
tttrrrr
質問者

お礼

まだまだ初心者の為、マニュアルを参考に勉強したいと思います。

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

こういうことでしょうか? <?PHP $array=Array( "N00" => 11 ,"NAME0" => a ,"N01" => 6 ,"NAME1" => b ,"N02" => 9 ,"NAME2" => c ,"N03" => 3 ,"NAME3" => d ,"N04" => 12 ,"NAME4" => e ,"N05" => 10 ,"NAME5" => f ,"N06" => 1 ,"NAME6" => g ,"N07" => 5 ,"NAME7" => h ,"N08" => 2 ,"NAME8" => i ,"N09" => 7 ,"NAME9" => j ,"N010" => 4 ,"NAME10" => k ,"N011" => 8 ,"NAME11" => l); foreach($array as $key=>$val){ if(preg_match("/^N0(\d+)$/",$key,$match)) $newarray[$match[1]]=$val; } print_r($newarray); ?> ちなみにNOがオーなのかゼロなのかまじってませんか?

関連するQ&A