PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP入門】連想配列の基本と使い方を実例つきで解説

PHPにおける連想配列とは

PHPにおいて配列(array)とは、「キー => 値」というペアをカンマで区切ってまとめたデータのコレクションです。このうち、各値が一意のキーに関連付けられている配列を連想配列(Associative Array)と呼びます。

キーには文字列または整数を指定する必要がありますが、値にはPHPのあらゆる型を使用でき、別の配列を格納することも可能です。

なお、キーの指定は必須ではありません。キーを省略して値だけを並べた場合は、0から始まる位置番号が自動的にキーとして割り当てられ、インデックス配列(添字配列)として扱われます。

連想配列の初期化方法

連想配列は、array()関数を使って初期化できます。また、PHP 5.4以降では、角括弧 [] の中に要素を記述して代入する方法でも作成可能です。

構文

//array()関数を使う方法
$arr = array(key1=>val1, key2=>val2, key3=>val3, ...);

//角括弧 [] による代入(PHP 5.4以降)
$arr = [key1=>val1, key2=>val2, key3=>val3, ...];

キーには整数または文字列を指定し、値には任意のPHP型を設定できます。もし同じキーが複数回登場した場合、後から代入された値が以前の値を上書きする点に注意してください。

特定のキーに関連付けられた値へのアクセス

キーに紐づく値を取得するには、次の構文を使用します。

$arr[key1];

利用可能なPHPバージョン

角括弧 [] を使った配列の代入構文は、PHP 5.4以降で利用できます。

実行例1:array()関数で連想配列を作成する

次の例では、array()関数を使って整数キーと文字列値を持つ連想配列を宣言し、var_dump()で内容を出力しています。

<?php
$arr = array(1=>"one", 2=>"two", 3=>"three");
var_dump($arr);
?>

出力結果

array(3) {
    [1]=>
    string(3) "one"
    [2]=>
    string(3) "two"
    [3]=>
    string(5) "three"
}

実行例2:角括弧 [] で連想配列を作成する

こちらの例では、角括弧 [] を使った代入により、同じ内容の連想配列を作成しています。

<?php
$arr = [1=>"one", 2=>"two", 3=>"three"];
var_dump($arr);
?>

出力結果

array(3) {
    [1]=>
    string(3) "one"
    [2]=>
    string(3) "two"
    [3]=>
    string(5) "three"
}

foreachループによる連想配列の走査

連想配列のすべての要素を順番に処理したい場合は、foreachループが便利です。「$key => $value」の形式で、キーと値を同時に取り出せます。

<?php
$arr = [1=>"one", 2=>"two", 3=>"three"];
//foreachループで全要素を表示
foreach ($arr as $key=>$value){
    echo $key . "=>" . $value . "\n";
}
?>

出力結果

1=>one
2=>two
3=>three

要素の変更と新しいキー・値ペアの追加

角括弧 [] を使えば、既存の要素の値を変更したり、新しいキー・値ペアを動的に追加したりすることも簡単に行えます。

  • 既存のキーを指定して代入すると、その要素の値が更新されます。
  • 存在しないキーを指定して代入すると、新しい要素として追加されます。
<?php
$arr = [1=>"one", 2=>"two", 3=>"three"];
//既存の要素を変更
$arr[2] = "twenty";
//新しい要素を追加
$arr[10] = "ten";
//foreachループで結果を確認
foreach ($arr as $key=>$value){
    echo $key . "=>" . $value . "\n";
}
?>

出力結果

1=>one
2=>twenty
3=>three
10=>ten

このように、PHPの連想配列は柔軟なキー指定と直感的な操作が特徴です。array()関数と角括弧 [] の両方の書き方を覚えておくと、状況に応じて使い分けができるようになります。

  1. PHPのtimezone_abbreviations_list()関数の使い方と実行例を解説

    timezone_abbreviations_list() 関数は、夏時間(DST)の適用状況、UTC からのオフセット(秒)、タイムゾーン ID を含む連想配列を返します。PHP が認識しているすべてのタイムゾーン略称の情報を一度に取得したい場合に便利な関数です。 構文 timezone_abbreviations_list() パラメータ なし:この関数は引数を受け取りません。 戻り値 成功した場合はタイムゾーン情報を含む配列を、失敗した場合は FALSE を返します。 使用例 次の例では、手続き型の timezone_abbreviations_list() と、同じ機能を持つオブジ

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に