PHPでの配列とコレクションの扱い方について学びます。配列はデータのリストやグループを扱うために非常に便利なデータ構造です。プログラム内でデータを効率よく操作するために、配列の基礎から始まり、操作方法、さらには高度な関数による応用まで順を追って理解していきましょう。
3.1 配列の基礎
PHPで配列を扱う際に、まずはその基本的な宣言方法と基本操作について学びます。配列は複数の値を一つの変数に格納するために使用され、複数のデータを効率よく操作するための基礎を築きます。
配列の宣言と基本操作
PHPで配列を宣言するには、array
関数か、[]
(配列リテラル)を使用します。例えば、以下のように配列を宣言できます。
$fruits = array("apple", "banana", "orange");
$vegetables = ["carrot", "broccoli", "lettuce"];
これで、$fruits
および$vegetables
にはそれぞれ果物や野菜のリストが格納されています。
配列に値を追加する
配列に値を追加する方法として、[]
を使った追加方法と、array_push
関数を使う方法があります。
$fruits[] = "grape"; // []を使用して追加
array_push($fruits, "mango", "kiwi"); // array_pushで追加
上記のコードでは、"grape"
が$fruits
配列の末尾に追加され、さらに"mango"
と"kiwi"
が追加されています。
配列から値を削除する
特定の要素を削除するには、unset
関数を使用します。この関数は指定したインデックスの要素を削除し、連続性を保ちません。
unset($fruits[1]); // "banana"が削除される
上記のコードでは、$fruits
配列の2番目の要素である"banana"
が削除されます。unset
を使用すると、削除された要素のインデックスが消えますが、他のインデックスは変更されません。
配列の結合
配列を結合する場合は、array_merge
関数を使用します。
$allItems = array_merge($fruits, $vegetables);
このコードは$fruits
と$vegetables
配列を結合し、新しい配列$allItems
を生成します。結果として、$allItems
には両方の配列の全要素が含まれます。
連想配列とその活用法
PHPにはインデックス付き配列だけでなく、連想配列もサポートされています。連想配列はキーと値のペアで構成されており、特定のキーを使って要素にアクセスできます。
$person = array(
"name" => "John",
"age" => 25,
"city" => "Tokyo"
);
ここで$person
配列は、"name"
、"age"
、"city"
というキーを持ち、それぞれに対応する値が格納されています。値にアクセスするにはキーを使います。
echo $person["name"]; // John
新しいキーと値のペアを追加することも可能です。
$person["job"] = "Engineer";
このコードで、$person
配列に新たな"job"
キーが追加され、対応する値は"Engineer"
になります。
3.2 配列の操作
次に、配列を効率的に操作するためのテクニックについて学びます。ループを使った配列の処理方法や、ソート・フィルタリングなどの実用的な操作を解説します。
ループを使った配列操作
配列の要素を操作するために一般的に使われるのがfor
ループやforeach
ループです。foreach
はPHPの配列に特化しており、簡潔な記述が可能です。
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
このコードは、$fruits
配列の各要素を順番に出力します。foreach
ループの構文は非常にシンプルで、配列の全要素を処理するのに最適です。
また、キーと値の両方を利用したループも可能です。
foreach ($person as $key => $value) {
echo $key . ": " . $value . "\n";
}
これにより、各キーとその値がペアで出力されます。
配列のソート
配列をソートするには、sort
やrsort
といった関数を使用します。これらの関数は配列の内容を昇順や降順に並べ替えます。
sort($fruits); // 昇順にソート
rsort($fruits); // 降順にソート
連想配列をソートする場合、asort
やksort
を使って値やキーに基づいて並べ替えることができます。
asort($person); // 値を基準に昇順でソート
ksort($person); // キーを基準に昇順でソート
配列のフィルタリング
配列をフィルタリングするためにarray_filter
関数が利用できます。特定の条件に一致する要素だけを保持した新しい配列を生成します。
$ages = [10, 20, 30, 40, 50];
$filteredAges = array_filter($ages, function($age) {
return $age >= 30;
});
このコードは、$ages
配列の中から30以上の要素のみを含む新しい配列$filteredAges
を生成します。
3.3 高度なコレクション操作
ここでは、配列をより高度に操作する方法を学びます。マルチディメンション配列や、array_map
などのビルトイン関数を使用して、配列をさらに活用する方法を解説します。
マルチディメンション配列
マルチディメンション配列は、配列の中にさらに配列が格納されている構造です。データの構造が複雑な場合や、複数の関連情報を保持する場合に便利です。
$students = array(
array(
"name" => "John",
"age" => 20,
"grade" => "A"
),
array(
"name" => "Jane",
"age" => 22,
"grade" => "B"
),
array(
"name" => "Mike",
"age" => 21,
"grade" => "C"
)
);
このコードでは、$students
配列は各生徒の情報を格納した配列を保持しています。このようなマルチディメンション配列は、例えばデータベースから取得したデータのように、複数のフィールドを持つデータのリストを扱う際に便利です。
マルチディメンション配列の要素にアクセスするには、インデックスを重ねて指定します。
echo $students[0]["name"]; // John
array_map, array_filterなどのビルトイン関数
array_map
やarray_filter
などのPHPのビルトイン関数を使うと、配列の要素に対する操作を効率的に行えます。
- array_map: 配列の各要素に特定の処理を適用して新しい配列を作成します。
$numbers = [1, 2, 3, 4, 5];
$squaredNumbers = array_map(function($num) {
return $num * $num;
}, $numbers);
上記のコードでは、$numbers
配列の各要素に対して2乗を計算し、新しい配列$squaredNumbers
を作成します。
- array_filter: 配列の中から特定の条件に一致する要素だけを抽出します(前述した例と同様)。
このように、ビルトイン関数を活用すると、少ないコードで配列操作を行うことができ、コードの可読性と保守性が向上します。
この章で学んだ配列とコレクションの操作は、データを効率的に管理し、プログラムの柔軟性を高める基礎となります。次の章では関数の概念をさらに深め、データを扱う際のコードの再利用性を向上させる方法を学びましょう。
初心者におすすめ!プログラミングスクールのススメ
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学の挫折率、驚きの87.5%!
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
有料と無料、スクールの違いは?
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
- 受講条件が異なる
- 学べるスキルやカリキュラム内容が異なる
- 就職や転職のサポート内容が異なる
どちらが自分に合っているか、よく考えて選ぶのが大事です。
サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
- 未経験者向けのわかりやすいカリキュラム
- 経験豊富なエンジニアのサポート
- オンラインで自分のペースで学習可能
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
終了後は副業もサポート!
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓