PHPで連想配列を使う方法についてまとめました。
連想配列の宣言から始まって、連想配列に対して、下記の操作をします。
・連想配列に要素を追加
・連想配列から要素を取得
・連想配列に要素を含むか検索
・連想配列の要素を削除
載せているサンプルコードについては、PHPのバージョン8.1.8を使って検証しています。
それでは確認していきましょう。
連想配列を宣言する
連想配列の宣言は、配列と同じように角括弧([]
)を使うことで、宣言して作ることができます。
例えば、下記のように作ります。
$user = ['name' => 'taro', 'age' => '30', 'tel' => '090-0000-0000'];
var_dump($user);
連想配列として、$user変数を作っています。
連想配列は値にアクセスするための、キー(添字)に文字列を使える配列です。
今回は、連想配列に下記の値を設定しました。
・’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関数に渡しているのは、下記になります。
・第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」と順番に番号が振られます。
連想配列では、この番号が文字列としてつけることができました。
コメント