LoginSignup
6
3

More than 3 years have passed since last update.

PHP: 連想配列とDB操作(初心者向け)

Last updated at Posted at 2020-09-28

初心者向けにDB接続の記事を書いたのですが、初心者の方にわからないと言われました笑
PHP: らくらくPDOクラス

ヒアリングをしてみると間に配列を挟んでるところがごちゃつくようです。

DB -> PDOでDBからデータGet -> なんかわからんけどforeach??

正解は「連想配列に一旦、格納する!!」です。

DB -> PDOでDBからデータGet -> 連想配列に格納 -> foreachで展開

配列変数 -> 1つの変数で複数の値を格納できるスグレモノ。

変数と配列変数の比較
普通の変数   //入る場所は一つ
$b = 1;
echo $b;    //-> 1

配列変数連想配列 //入る場所が複数, 添字キーで格納 key: value

//連想配列を1つつくってみます(生成): key => value
$bar = ['id' => 1, 'name' => 'CakePHP', 'birthday' => '2005-04-01'];

var_dump($bar);         //一度確認しましょう!

//呼び出し方
echo $bar['id'];        //-> 1
echo $bar['birthday'];  //-> 2000-02-03

//foreachで呼び出す
foreach ($bar as $val) {
    echo $val . ',';
}                       //-> 1,CakePHP,2000-02-03

多次元配列(配列の中に配列が入ります。)

多次元配列(連想配列)
データベースと連動してよく使われます
-> DBテーブル名 -> key
-> DBデータ   -> value

//多次元配列を生成してみます: key => value
$bars = [['id' => 1, 'name' => 'CakePHP', 'birthday' => '2005-04-01'],       //0
         ['id' => 2, 'name' => 'Laravel', 'birthday' => '2011-06-01'],       //1
         ['id' => 3, 'name' => 'Ruby on Rails', 'birthday' => '2004-07-01'], //2
];

var_dump($bars);             //必ず確認します!

呼び出し方
echo $bars[0]['birthday'];   //-> 2005-04-01
echo $bars[1]['name'];       //-> Laravel
echo $bars[2]['id'];         //-> 3

foreachで呼び出す: 
//1ループ目: $bar <- ['id' => 1, 'name' => 'CakePHP', 'birthday' => '2005-04-01']
//2ループ目: $bar <- ['id' => 2, 'name' => 'Laravel', 'birthday' => '2011-06-01']
//3ループ目: $bar <- ['id' => 3, 'name' => 'Ruby on Rails', 'birthday' => '2004-07-01']
foreach ($bars as $bar) {
    echo $bar['id'] . ':';
    echo $bar['name'] . ',';
}  //-> 1:CakePHP,2:Laravel,3:Ruby on Rails,

多重ループで全て呼び出す
//$bars -> [id, name, birthday] -> $bar 以下繰り返し
foreach ($bars as $bar) {
    foreach ($bar as $val) {
        echo $val . ',';
    }
    echo '<br>';
}  //-> 1,CakePHP,2005-04-01,
   //   2,Laravel,2011-06-01,
   //   3,Ruby on Rails,2004-07-01,

foreachでキーと値の取得

$values = [
    1 => 'CakePHP',
    2 => 'Laravel',
    3 => 'Ruby on Rails',
];
foreach ($values as $key => $value) {
    echo $key . ': ' . $value . '<br>';
}
// 1: CakePHP
// 2: Laravel
// 3: Ruby on Rails

PDOとの連携

例の中で連想配列・多次元配列を生成している部分をPDOがやってくれます。
その後はforeachでデータをブン回して処理しましょ!

LGTMお願いします!
モチベーションがあがります!

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3