• 締切済み

foreachで配列を作る

$array = array("id","name","address","tel","point","a1"); $res = $db->query($sql);  //sqlのクエリー while ($row = $res->fetchRow( DB_FETCHMODE_ASSOC )) { $data_list[]=array( $array[0]=>$row["$array[0]"], $array[1]=>$row["$array[1]"], $array[2]=>$row["$array[2]"], $array[3]=>$row["$array[3]"], $array[4]=>$row["$array[4]"], $array[5]=>$row["$array[5]"]); } をforeachを使って $array = array("id","name","address","tel","point","a1"); $res = $db->query($sql);  //sqlのクエリー while ($row = $res->fetchRow( DB_FETCHMODE_ASSOC )) { foreach(~){             //処理     } のようにかきかえたいのですがどうしたらいいでしょうか?foreachをしらべていろろやったのですがうまくいきません。よろしくおねがいします。  ちなみに$data_list[]の配列はArray ( [0] => id [1] => name [2] => address [3] => tel [4] => point [5] => a1 ) Array ( [0] => Array ( [id] => 0 [name] => ここあ [address] => 東京 [tel] => 2 [point] => 2 [a1] => 2 ) [1] => Array ( [id] => 1 [name] => 太郎 [address] => 東京 [tel] => 3 [point] => 5 [a1] => あ ) [2] => Array ( [id] => 4 [name] => 五郎 [address] => 東京 [tel] => 0 [point] => 1 [a1] => あああああ ) [3] => Array ( [id] => 5 [name] => 士郎 [address] => 神奈川 [tel] => 26 [point] => 5 [a1] => ああああああああああ ) …となります。

みんなの回答

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

$row = $res->fetchAll( DB_FETCHMODE_ASSOC ); では駄目なのでしょうか。 冗長ですが、配列位置を明示的に書くならば $ii = 0; while ($row = $res->fetchRow( DB_FETCHMODE_ASSOC )) {  foreach($array as $val)  {   $data_list[$ii][$val]=$row[$val];  }  $ii++; } ですかね。

03d1081
質問者

お礼

while ($row = $res->fetchRow( DB_FETCHMODE_ASSOC )) { foreach ($array as $key=>$val) { $data["$val"] = $row["$val"]; } $data_list[] = $data; } でできました。

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

こんな感じですかね? $data=&$data_list[]; foreach($array as $val){ $data[$val]=$row [$val]; }

03d1081
質問者

お礼

$data_list[] = $data にしないとだめみたいです。

関連するQ&A