- 締切済み
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] => ああああああああああ ) …となります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wp_
- ベストアンサー率54% (132/242)
$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++; } ですかね。
- yambejp
- ベストアンサー率51% (3827/7415)
こんな感じですかね? $data=&$data_list[]; foreach($array as $val){ $data[$val]=$row [$val]; }
お礼
$data_list[] = $data にしないとだめみたいです。
お礼
while ($row = $res->fetchRow( DB_FETCHMODE_ASSOC )) { foreach ($array as $key=>$val) { $data["$val"] = $row["$val"]; } $data_list[] = $data; } でできました。