見出し画像

🔰 phpの基礎3〜配列・繰り返し処理

配列の作り方

  • PHPで配列を作るには、`[]` を使う。値はカンマで区切る。
    以下のコードでは、$scores という変数に、4つの数字を持つ配列が格納されているイメージ。

<?php
  $scores = [96, 86, 56, 89]; 
?>

配列を作るには、array() を使った記法もある(こちらの方が昔から存在)。
WordPressの公式マニュアルでは、こちらで書かれていることが多い。


配列の使い方

  • 配列の中にある、それぞれの値を「要素」と呼ぶ。

  • 要素を取り出すためには「添字(index)」を使う。
    添字は、配列の中の要素の順番を表す番号。0から始まることに注意。

  • 要素を取り出すには、変数名に`[]`を付けて、括弧内に添字を書く。

$scores = [96, 86, 56, 89]; 

echo $scores[0]; // 96が出力される
echo $scores[1]; // 86が出力される


配列の要素は、後から変更できる。具体的な書き方は以下の2行目。
代入し直すイメージ。

$scores = [96, 86, 56, 89]; 

$scores[0] = 100; // 1番目の要素を100に変更

echo $scores[0]; // 100が出力される


配列に新しい要素の追加もできる。方法はいくつかある。

方法1:添字を指定しない

添字を指定せずに値を代入する方法。この場合、要素は配列の最後に追加される。

$scores = [96, 86, 56, 89];

$scores[] = 70; // 最後に70が追加される

echo $scores[4]; // 70が出力される


方法2: array_push関数を使う

array_push関数を使うと、方法1と同じく、配列の最後に要素を追加できる。

$scores = [96, 86, 56, 89];

array_push($scores, 70);
/*  第一引数に、要素を追加したい配列名
*** 第二引数に、追加したい要素の値を書く */

echo $scores[4]; // 70が出力される


方法3: array_merge関数を使う

複数の配列を結合するイメージ。

$scores = [96, 86, 56, 89];
$new_scores = [70, 80];

$scores = array_merge($scores, $new_scores);
// $scoresの最後に$new_scoresの要素が追加される

echo $scores[4]; // 70が出力される
echo $scores[5]; // 80が出力される


配列を初期化する方法

配列を初期化したい変数に、array関数で空の配列を作って代入する

$scores = [96, 86, 56, 89];
$scores = array();  //$scores = [];でもOK


連想配列ってなに?

  • 連想配列とは、「キー」という名前をつけて値を管理できる配列のこと。

  • 配列との違いは、値の管理方法が異なる点。配列は「添字(index)」で管理するのに対し、連想配列は、自分で名前を付けた「キー」で管理する。

    職場のロッカーで例えると・・・
    ・ 普通の配列 「1番目のロッカー」「2番目のロッカー」
    ・ 連想配列  「佐藤さんのロッカー」「山田さんのロッカー」

  • 連想配列のメリットは、データの意味が分かりやすいこと。
    番号で管理するよりも、キーをつけることによって、直感的にイメージしながらコーディングできる。


連想配列の作り方

  • PHPで連想配列を作るには、`[]` の中に「キー => 値」の形式で書く。

  • キーは文字列で指定する。

  • `=>` を使ってキーと値をつなぐ。

$scores = [
  "数学" => 89,
  "英語" => 76,
  "理科" => 35,
  "社会" => 83
];


要素の取り出し方

連想配列の中にある要素を取り出すにはキーを指定する。

echo $scores["理科"]; // 35が出力される


値の変更

要素の値を変更するには、キーを指定して新しい値を代入する。

$scores["理科"] = "100"; 

echo $scores["理科"]; // 100が出力される


要素を追加

連想配列に新しい要素を追加するには、キーを指定して値を代入する。

$scores["国語"] = 11; 

echo $scores["国語"]; // 11が出力される


参考:配列の内容を確認する方法

配列の内容確認には、print_r() 関数を使う。
使い方は、`()`の中に配列名を書くイメージ。
この関数は、phpにもともと備わっているもの(組み込み関数と呼ばれる)。



foreach文で配列の要素の値を順番に処理

  • 複数の要素が入った配列から、一つずつ取り出して処理したい時は、foreach文が便利。

  • foreach文は、配列の要素を順番に取り出して、指定した処理を繰り返すための構文のこと。以下のように書く。

foreach ($配列 as $変数) {
  // 各要素に対して実行する処理
}
  • `$配列` : 処理対象の配列名

  • `$変数`: 要素の値を一時的に格納する変数。繰り返し処理によって、
        次々と値が上書きされるイメージ。


foreach文の動きのイメージ

`foreach` 文の裏側では、以下の処理が行われている。

  1. `$配列`の先頭の要素を取り出す。

  2. 取り出した要素を `$変数` に代入する。

  3. `{}` 内の処理を実行する。

  4. 次の要素を取り出して、2・3を実行する。
    これを配列の要素がなくなるまで繰り返す。


参考:foreach文で配列の要素のキーと値を順番に処理

  • キーと要素を処理したいときは、以下のように書く。

  • 先ほどの例と同様に、`$キー`の変数と `$値`の変数それぞれに
    キーと値が格納され、繰り返り処理が行われるイメージ。

foreach ($配列 as $キー => $値) {
  // 各要素に対して実行する処理
}


while文で繰り返し処理をする

  • 指定した条件を満たす間、処理を繰り返したいときには while文が便利。

  • 以下のように書く。注意点は、無限ループを防ぐこと。処理途中で条件を満たさなくなるように書く必要がある。

while (条件) {
    // 条件がtrueの間、実行する処理
}
  • for文との使い分けは、繰り返す数が変動する場合に while文を使う。

  • WordPressでは投稿データを取得する際にwhile文が使われる(理由は、投稿数は増減したりと変動するため)。

いいなと思ったら応援しよう!