チェ・ゲバムラの日記

脱犬の道を目指す男のブログ

【PHP】今更ながらPHPの連想配列のお勉強まとめ

こんな記事を載せる事で自分の恥をさらすかのようでいやだがまあ勉強不足ということで。
1年前とかにCakePHPとかの記事あげておきながら、順序がおかしい当たりがたたき上げ感満載ですね。


array() を使用して配列を作成する場合

そのままダイレクトに配列に値を入れるやり方

$foods = array('そば', 'ラーメン', 'うどん');
echo $foods[0];
echo $foods[1];
echo $foods[2];
[結果]
そば
ラーメン
うどん
値を変数に代入して表示する場合(連想配列という)

$foods = array('soba' => 'そば', 'ramen' => 'ラーメン', 'udon' => 'うどん');
この場合、sobaやramenはキーとなり、配列の順番を数えずにキーを指定することで値を表示できる

echo $foods['soba'];
echo $foods['ramen'];
echo $foods['udon'];
[結果]
そば
ラーメン
うどん
配列の初期化

特に最初は値が確定しておらず、プログラムで配列の値をいれていきたいときなどは、初期化したものを使う

$foods = array();
多次元配列のつくり

多次元配列の基本形

$users = array();//配列初期化
$users[1]['name'] = 'suzuki';
$users[1]['mail'] = 'suzuki@mail.com';
$users[2]['name'] = 'saitou';
$users[2]['mail'] = 'saitou@mail.com';
$users[3]['name'] = 'tanaka';
$users[3]['mail'] = 'tanaka@mail.com';
echo $users[1]['name'];
echo $users[1]['mail'];
echo $users[2]['name'];
echo $users[2]['mail'];
echo $users[3]['name'];
echo $users[3]['mail'];
初期化された配列を設置しデータを入力する。$users[1]['name']のように、1番目の場所にあるnameというキーに値を入れていく書き方

[結果]
suzuki
suzuki@mail.com
saitou
saitou@mail.com
tanaka
tanaka@mail.com
多次元配列の連想配列

$a = array();$k = array();$s = array();$aks = array();
$a = array('first' => 'あ', 'second' => 'い', 'third' => 'う', 'forth' => 'え' ,'fifth' => 'お');
$k = array('first' => 'か', 'second' => 'き', 'third' => 'く', 'forth' => 'け' ,'fifth' => 'こ');
$s = array('first' => 'さ', 'second' => 'し', 'third' => 'す', 'forth' => 'せ' ,'fifth' => 'そ');
$aks = array('recodeA' => $a, 'recodeK' => $k, 'recodeS' => $s);
$aksのキーに他の配列を代入する

echo $aks['recodeA']['first'];
echo $aks['recodeA']['fifth'];
echo $aks['recodeK']['first'];
echo $aks['recodeK']['fifth'];
echo $aks['recodeS']['first'];
echo $aks['recodeS']['fifth'];
$aksのキーrecodeAにはいっている、$aのキーfirstを表示など、複数の配列を一つにまとめて表示させることができる。

[結果]






その他

配列の大きさを取得(count($配列名))

$ary = array('Tokyo', 'Kanagawa', 'Saitama'); $size = count($ary);
echo $size;
初期化された配列を設置しデータを入力する。$users[1]['name']のように、1番目の場所にあるnameというキーに値を入れていく書き方

3
配列を変数に変換する(extract())

$user = array('name' => '鈴木','mail' => 'suzuki@mail.com','sex' => '男');
extract($user);
echo "$name $mail $sex";
[結果]
鈴木 suzuki@mail.com 男
配列の数だけ値を展開(foreach)

foreachを使うことで、配列に含まれる数分繰り返す

$dataList = array(1, 2, 3, 4, 5);
foreach ($dataList as $atai){
echo '現在の配列要素の値は[ '.$atai.' ]です。';
}
[結果]
現在の配列要素の値は[ 1 ]です。
現在の配列要素の値は[ 2 ]です。
現在の配列要素の値は[ 3 ]です。
現在の配列要素の値は[ 4 ]です。
現在の配列要素の値は[ 5 ]です。