[PHPのはじめ方] Part9: 配列の作成と操作(連想配列、数値配列)

はじめに:配列ってなんだろう?

プログラミングをしていると、「たくさんのデータ」を扱いたい場面がたくさん出てきます。例えば、ユーザーの名前リスト、テストの点数一覧、商品の情報などです。これらのデータを一つ一つ別の変数に入れて管理するのは大変ですよね

そこで登場するのが配列 (Array) です!配列を使うと、関連する複数の値を一つの変数にまとめて格納し、効率的に管理することができます。PHPにおいて配列は非常に強力で、Web開発の様々な場面で活躍します。

このステップでは、PHPの配列の中でも基本となる「数値配列」と「連想配列」の作り方と基本的な操作方法を学びましょう!

1. 数値配列:番号で管理するデータリスト

数値配列は、もっともシンプルな配列の形式です。データを入れると、自動的に 0から始まる連続した整数 が「インデックス(添え字)」として割り当てられます。ちょうど、リストの項目に番号を振っていくイメージです。

PHPでは、array() 関数を使う方法と、より短い角括弧 [] を使う方法があります。最近のPHPでは、短い [] を使うのが一般的です。

<?php
// array() 関数を使う方法 (古い書き方)
$fruits_old = array('Apple', 'Banana', 'Cherry');

// 角括弧 [] を使う方法 (推奨 )
$fruits = ['Apple', 'Banana', 'Cherry'];

// 中身を確認してみる
print_r($fruits);
?>

上記のコードを実行すると、次のような出力が得られます。

Array
(
    [0] => Apple
    [1] => Banana
    [2] => Cherry
)

[0], [1], [2] がインデックス番号で、それぞれに対応する値が格納されているのがわかりますね。

配列の中の特定のデータ(要素)を取り出すには、変数名の後に [インデックス番号] を指定します。

<?php
$fruits = ['Apple', 'Banana', 'Cherry'];

// 最初の要素 (インデックス 0) を表示
echo $fruits[0]; // 出力: Apple

// 2番目の要素 (インデックス 1) を表示
echo $fruits[1]; // 出力: Banana
?>

注意: インデックスは 0 から始まります。存在しないインデックスを指定するとエラーになるので気をつけましょう。

既存の配列に新しい要素を追加したり、既存の要素の値を変更したりすることも簡単です。

<?php
$fruits = ['Apple', 'Banana', 'Cherry'];

// 末尾に新しい要素を追加 (インデックスは自動で割り振られる)
$fruits[] = 'Orange';
// $fruits は ['Apple', 'Banana', 'Cherry', 'Orange'] になる

// 既存の要素を変更 (インデックス 0 の値を変更)
$fruits[0] = 'Apricot';
// $fruits は ['Apricot', 'Banana', 'Cherry', 'Orange'] になる

print_r($fruits);
?>

2. 連想配列:名前(キー)で管理するデータセット

数値配列が番号でデータを管理するのに対し、連想配列 (Associative Array) は、各データに固有の「名前」を付けて管理します。この名前のことを キー (Key) と呼びます。キーと値 (Value) がペアになっているのが特徴です。辞書のように、単語(キー)を引くと意味(値)が出てくるイメージです。

連想配列も array() 関数または角括弧 [] で作成できます。キーと値を => で結びつけます。キーには通常、文字列を使います。

<?php
// array() 関数を使う方法
$user_old = array('name' => 'Taro', 'age' => 30, 'city' => 'Tokyo');

// 角括弧 [] を使う方法 (推奨 )
$user = [
    'name' => 'Taro',
    'age' => 30,        // キーに対応する値は文字列以外 (数値など) でもOK
    'city' => 'Tokyo'
];

// 中身を確認してみる
print_r($user);
?>

上記のコードを実行すると、次のような出力が得られます。

Array
(
    [name] => Taro
    [age] => 30
    [city] => Tokyo
)

数値のインデックスではなく、指定した文字列(’name’, ‘age’, ‘city’)がキーになっていることがわかりますね。

連想配列の要素にアクセスするには、変数名の後に ['キー名'] を指定します。

<?php
$user = [
    'name' => 'Taro',
    'age' => 30,
    'city' => 'Tokyo'
];

// 'name' キーに対応する値を表示
echo $user['name']; // 出力: Taro

// 'age' キーに対応する値を表示
echo $user['age']; // 出力: 30
?>

注意: キー名は大文字・小文字を区別します。$user['Name'] のように間違えると、存在しないキーとして扱われます。

連想配列でも、新しいキーと値のペアを追加したり、既存のキーに対応する値を変更したりできます。

<?php
$user = [
    'name' => 'Taro',
    'age' => 30,
    'city' => 'Tokyo'
];

// 新しいキーと値のペアを追加
$user['job'] = 'Engineer';
// $user に 'job' => 'Engineer' が追加される

// 既存のキーの値を変更
$user['age'] = 31;
// 'age' の値が 30 から 31 に変更される

print_r($user);
?>

3. 配列の基本的な操作(共通)

数値配列でも連想配列でも使える、便利な基本的な操作をいくつか見てみましょう。

配列にいくつの要素が含まれているかを知りたい場合は、count() 関数を使います。

<?php
$fruits = ['Apple', 'Banana', 'Cherry'];
$user = ['name' => 'Taro', 'age' => 30];

echo count($fruits); // 出力: 3
echo count($user);   // 出力: 2
?>

開発中に配列の中身を確認したいことはよくあります。print_r() は人間が読みやすい形式で、var_dump() はデータ型や文字数など、より詳細な情報を表示してくれます。デバッグ時に非常に役立ちます

<?php
$fruits = ['Apple', 'Banana', 'Cherry'];

echo "<pre>"; // ブラウザで見やすくするために pre タグを追加
echo "--- print_r() の出力 ---<br>";
print_r($fruits);
echo "<br>";

echo "--- var_dump() の出力 ---<br>";
var_dump($fruits);
echo "</pre>";
?>

出力例:

--- print_r() の出力 ---
Array
(
    [0] => Apple
    [1] => Banana
    [2] => Cherry
)
--- var_dump() の出力 ---
array(3) {
  [0]=>
  string(5) "Apple"
  [1]=>
  string(6) "Banana"
  [2]=>
  string(6) "Cherry"
}

var_dump() の方が、各要素のデータ型(string)や文字数まで表示されているのがわかりますね。

配列の全ての要素に対して同じ処理を行いたい場合、foreach ループが非常に便利です。

数値配列の場合:

<?php
$colors = ['Red', 'Green', 'Blue'];

foreach ($colors as $color) {
  echo $color . "<br>"; // 各色が順番に出力される
}
// 出力:
// Red
// Green
// Blue
?>

連想配列の場合(キーと値の両方を取得):

<?php
$user = ['name' => 'Hanako', 'age' => 25];

foreach ($user as $key => $value) {
  echo $key . ': ' . $value . "<br>"; // キーと値が順番に出力される
}
// 出力:
// name: Hanako
// age: 25
?>

foreach を使うことで、配列の要素数に関係なく、すべての要素を簡単に処理できます。

まとめ

今回はPHPの配列の基本、数値配列と連想配列について学びました。

  • 数値配列: 順番が重要で、0から始まる番号で管理したいデータリストに使う。
  • 連想配列: 各データに意味のある名前(キー)を付けて管理したいデータセットに使う。

配列はPHPプログラミングの基礎であり、これから学ぶ多くの機能(フォーム処理、データベース操作など)で頻繁に利用します。基本的な作成方法とアクセス方法をしっかりマスターしておきましょう!

次のステップでは、配列をさらに便利に扱うための様々な「配列関数」について学んでいきます。お楽しみに!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です