MySQLのデータを多次元連想配列にする方法を教えて下さい。
下記のような多次元連想配列のデータがあります。
これと同様のMySQLに登録されたデータから多次元連想配列を作りたいと思います。
$test=
array(
array("id" => "1","kamoku" => "算数","tensu" => "70"),
array("id" => "2","kamoku" => "理科","tensu" => "88"),
array("id" => "3","kamoku" => "国語","tensu" => "90"),
);
print_r($test);
---print_r($test)の結果---------------------------------
Array ( [0] => Array ( [id] => 1 [kamoku] => 算数 [tensu] => 70 ) [1] => Array ( [id] => 2 [kamoku] => 理科 [tensu] => 88 ) [2] => Array ( [id] => 3 [kamoku] => 国語 [tensu] => 90 ) )
--------------------------------------------------------
これと同様のデータをMySQLに作成します。
テーブル名:test
列名:id,kamoku,tensu
MySQLからデータを取得
try
{
$dbh = new PDO($DSN , $DBUSER , $DBPASS);
$query = select * from test
$stmt = $dbh->prepare($query);
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC))
{
$id = ($result['id']);
$kamoku = ($result['kamoku']);
$tensu = ($result['tensu']);
}
}
catch(PDOException $e)
{
print "Error!: " . $e->getMessage() . "<br>";
die();
}
このソースの中で何らかの処理をして
print_r($test);
を実行したときに
---print_r($test)の結果---------------------------------
Array ( [0] => Array ( [id] => 1 [kamoku] => 算数 [tensu] => 70 ) [1] => Array ( [id] => 2 [kamoku] => 理科 [tensu] => 88 ) [2] => Array ( [id] => 3 [kamoku] => 国語 [tensu] => 90 ) )
--------------------------------------------------------
というような、文頭で記載したものと同じ結果を得たいと思います。
while内で
print_r($result);を行うと1行ずつ下記のような連想配列
Array ( [id] => 1 [kamoku] => 算数 [tensu] => 70 )
が取得できているのでこれを連結させて
$test_sample=<<<EOF
array("id" => "1","kamoku" => "算数","tensu" => "70"),
array("id" => "2","kamoku" => "理科","tensu" => "88"),
array("id" => "3","kamoku" => "国語","tensu" => "90")
EOF;
という配列の中身は作ることができました。
(1)ケース1
$test=array($test_sample);
print_r($test);
としてもダメで、
Array ( [0] => array("id" => "1","kamoku" => "算数","tensu" => "70"), array("id" => "2","kamoku" => "理科","tensu" => "88"), array("id" => "3","kamoku" => "国語","tensu" => "90") )
というようにうまく多次元連想配列になっていません。
(2)ケース2
$test='array('.$test_sample.')';
print_r(test);
としてみたところ、
array( array("id" => "1","kamoku" => "算数","tensu" => "70"), array("id" => "2","kamoku" => "理科","tensu" => "88"), array("id" => "3","kamoku" => "国語","tensu" => "90"))
というように配列ではなく単なる文字列として表示されてしまいます。
配列の中身を変数で扱う時には特別な記述法などがあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- C言語・C++・C# c言語について array[i]-‘0’ これってどーゆー意味ですか? (ちなみに16進数を10進数 5 2022/12/06 18:39
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのセレクトボックスの初期値...
-
ファイルの書き込みについて教...
-
2次元配列CSVのソート
-
特定の文からメールアドレスの...
-
読み(あ行~わ行)ごとに分け...
-
数独かを判断するプログラム
-
【PHP】配列のキー名の修正は可...
-
np.stack()とnp.array()の違い
-
C言語 最大値と最小値を求めて...
-
STLのvectorで作った配列をメン...
-
PHPで10連ガチャを作成したいの...
-
fgetc関数について
-
PHPでユニークIDを作る
-
行列
-
C言語の配列をPush(追加)する...
-
System.String.Splitでエラー
-
配列の要素(value)に、変数を...
-
配列をループでたくさん宣言し...
-
【PHP】配列内のある値以上をカ...
-
Resource id #3 と表示されま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スカラーのベクトル微分
-
STLのvectorで作った配列をメン...
-
特定の文からメールアドレスの...
-
配列の要素(value)に、変数を...
-
読み(あ行~わ行)ごとに分け...
-
ファイルの書き込みについて教...
-
verilogで、配列の一部をタスク...
-
CArrayの要素としてCStringArra...
-
pythonのnumpyでの繰り返しでの...
-
C言語の配列をPush(追加)する...
-
php キーソート キーが重複した...
-
CArrayのソート
-
【PHP】配列のキー名の修正は可...
-
多次元配列をエンコードする関...
-
PHPは何故値渡しより参照渡しの...
-
cakephpでのトランザクション処...
-
pg_copy_fromの使い方について...
-
array_intersectで空欄を比較し...
-
濁点のソート
-
配列中のあるキー、値を取得し...
おすすめ情報