PHPの連想配列の使い方!(宣言/ 追加/取得/検索/削除など)

PHP

PHPで連想配列を使う方法についてまとめました。
連想配列の宣言から始まって、連想配列に対して、下記の操作をします。

・連想配列の宣言
・連想配列に要素を追加
・連想配列から要素を取得
・連想配列に要素を含むか検索
・連想配列の要素を削除

載せているサンプルコードについては、PHPのバージョン8.1.8を使って検証しています。
それでは確認していきましょう。

連想配列を宣言する

連想配列の宣言は、配列と同じように角括弧([])を使うことで、宣言して作ることができます。
例えば、下記のように作ります。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
var_dump($user);

連想配列として、$user変数を作っています。
連想配列は値にアクセスするための、キー(添字)に文字列を使える配列です。

今回は、連想配列に下記の値を設定しました。

・’name’という項目に値の’taro’が格納されている。
・’age’という項目に値の’30’が格納されている。
・’tel’という項目に値の’090-0000-0000”が格納されている。

var_dump関数で出力すると、このようになります。

array(3) {
  ["name"]=>
  string(4) "taro"
  ["age"]=>
  string(2) "30"
  ["tel"]=>
  string(13) "090-0000-0000"
}

それぞれのキーに対して、設定した値が入っていることが確認できました。

配列のキーを指定して作成する

一括でキーと値を格納せずに、ひとつずつキーと値を設定して作る方法もあります。
例えば、下記のようにします。

$user['name'] = 'taro';
$user['age'] = '30';
$user['tel'] = '090-0000-0000';

var_dump($user);

先ほどのプログラムでは一括して設定しました。
今回はひとつずつキーと値を設定しています。

$user変数に対して、それぞれキーを設定して、値を格納しました。
var_dump関数で出力すると、先ほどと同じ結果になります。

array(3) {
  ["name"]=>
  string(4) "taro"
  ["age"]=>
  string(2) "30"
  ["tel"]=>
  string(13) "090-0000-0000"
}

このように、ひとつずつキーを指定して作成することも可能です。

連想配列に要素を追加する

連想配列に要素を追加するときには、連想配列に新しいキーを設定して、値を格納します。
例えば、このようにします。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
$user['address'] = '福岡県福岡市';

var_dump($user);

連想配列として、一括で値を定義して、$user変数を作っています。
次の行で、連想配列に要素を追加しています。
「address」というキーに対して、「福岡県福岡市」という値を設定しました。

var_dump関数で確認しています。
出力すると、下記のようになりました。

array(4) {
  ["name"]=>
  string(4) "taro"
  ["age"]=>
  string(2) "30"
  ["tel"]=>
  string(13) "090-0000-0000"
  ["address"]=>
  string(18) "福岡県福岡市"
}

連想配列に対して、「address」というキーで値が設定されました。

連想配列から要素を取得する

連想配列から要素を取得するときには、連想配列にキーを指定して、値を取得すると良いです。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
$result = $user['name'];

var_dump($result);

連想配列として、$user変数を作っています。
次の行で、連想配列の$user変数にキーを指定して、値を取得しました。

キーとして「name」を指定しているので、格納している「taro」が取得できます。
var_dump関数で出力すると、下記のようになりました。

string(4) "taro"

指定したキーの値が取得できました。

連想配列に要素を含むか検索する

in_array関数を使うと、連想配列に要素を含むか、検索して確認することができます。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
$result = in_array('30', $user);

var_dump($result);

連想配列として、$user変数を作っています。
次の行で、in_array関数を使って値があるか確認しています。

in_array関数に渡しているのは、下記になります。

・第1引数:探したい値
・第2引数:配列

今回は、$userの連想配列の値として「30」があるか確認しています。
in_array関数では、値が存在すればtrueが返ってきて、ない場合にはfalseが返ってきます。

今回は「30」が値として存在するので、trueが返ってきます。
var_dump関数で出力すると、下記のようにtrueが返ってきていることが確認できました。

bool(true)

連想配列の要素を削除する

連想配列の要素を削除するときには、unset関数を使うと良いです。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
unset($user['age']);

var_dump($user);

連想配列として、$user変数を作っています。
次の行で、unset関数を使って要素を削除しています。

unset関数に渡しているのは、削除したい配列の要素です。
今回はキーが「age」の要素を削除しています。

var_dump関数で出力すると、下記のように要素が削除されていることが確認できました。

array(2) {
  ["name"]=>
  string(4) "taro"
  ["tel"]=>
  string(13) "090-0000-0000"
}

連想配列をforeach文でループする

連想配列をforeach文でループして、全てのキーや値に対して、何かの処理をすることが可能です。
例えば、下記のようにループします。

$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];

foreach ($user as $key => $value) {
    echo "キー名:{$key} 値:{$value}\n";
}

連想配列として、$user変数を作っています。
その次の処理で、foreach文を使って要素をループして取得しています。

連想配列の後にasキーワードを使っています。
$key変数に連想配列のキー、$value変数に連想配列の値が設定されます。(ここの変数名は好きに付けれます)

ループ内の処理では、キーと値をそのまま出力するようにしました。
実際に出力結果を確認すると、下記のようになります。

キー名:name 値:taro
キー名:age 値:30
キー名:tel 値:090-0000-0000

ループされて、それぞれのキーと値が出力されました。

おわりに

今回はPHPの連想配列についての使い方を確認していきました。

配列の場合には、キーとして「0, 1, 2」と順番に番号が振られます。
連想配列では、この番号が文字列としてつけることができました。

コメント

タイトルとURLをコピーしました