トップへ戻る
BLOGS

PHP 基礎講座の備忘録(連想配列と配列の操作)

PHP 基礎講座の備忘録(連想配列と配列の操作)

PHPの基礎構文からPHPによる簡単なアプリケーションの作成までの口座を書き記し、自身の基盤となるように残しておきます

私自身WordPressをさわっていて

WordPressにてわからないことがあっても、ググれば基本的な機能はほぼほぼ実装できるのですが

もっと高度な内容であったりすると根本的なエビデンスの知識は必須だと考えました

前置きが長くなりましたが

さて今回もPHPの基礎的な部分を網羅的に書き記して行こうと思います

連想配列について

PHPにおける連想配列は複合型と呼ばれるデータ型になります

基本型ともいわれるスカラ型に対して、データを分割できるタイプのものを複合型と呼ばれています

これらを組み合わせることで複雑なデータ処理を行うことが可能になります。キーバリュー型ということもあるようです

$jojo = array(
'第一部' => 'ジョナサン・ジョースター',
'第二部' => 'ジョセフ・ジョースター',
'第三部' => '空条承太郎',
'第四部' => '東方仗助',
'第五部' => 'ジョルノ・ジョバァーナ',
'第六部' => '空条徐倫',
'第七部' => 'ジョニー・ジョースター',
);

このようにキーに対して値を持つことになります

‘第一部’がキーで ‘ジョナサン・ジョースター’,が値ですね

基本的な取り出し方は

echo $jojo['第五部'];

一方通行でキーから値を取り出すようにします

また値を書き換える方法は、

echo $jojo['第六部'];
$jojo['第六部'] = '空条承太郎';
echo '<br>';
echo $jojo['第六部'];

$jojo[‘第六部’] = ‘空条承太郎’;を途中から代入することで、書き換えをしています、

また値を追加する方法は、

$jojo['第八部'] = '東方定助';

これで新たなキーと値を追加することが出来ます

基本的にキーに指定できるものはたったの二種類で

文字列型か整数型のどちらかで文字列型が多い気がします

またキーのデータ型はどちらかで統一させる必要があります

したがって基本的には文字列でキーを指定するのですが

文字列であるためキーを変数にしていても問題ありません

多次元連想配列について

その名の通り連想配列の中に連想配列が入れ子になっている配列です

取り出す際も[キー]の[キー]の[キーの]というように角カッコでアクセスします

$jojo = array(
	'第一部' => [
		'主人公' =>  [
			'名前' => 'ジョナサン・ジョースター',
			'師匠' => 'ウィル・A・ツェペリ',
			'愛犬' => 'ダニー',
			'特技' => 'ラクビー',
			'技' => '波紋法'
		],
		'ライバル' => 'ディオ・ブランドー',
		'ヒロイン' => 'エレナ・ペンドルトン'
	],
	'第二部' => 'ジョセフ・ジョースター',
	'第三部' => '空条承太郎',
	'第四部' => '東方仗助',
	'第五部' => 'ジョルノ・ジョバァーナ',
	'第六部' => '空条徐倫',
	'第七部' => 'ジョニー・ジョースター',
);
echo $jojo['第一部']['主人公']['師匠'];

キーを持たない配列について

他の言語でよく耳にするいわゆる「配列」はPHPには厳密には存在しなくて下記の例では0から始まる連番がキーとして紐付いている連想配列と言うそうです

$jojos = ['ジョナサン・ジョースター','ジョセフ・ジョースター','空条承太郎'];
echo $jojos[0];

array_push()要素を追加する

この配列の場合array_push()という関数で配列に要素を追加できます

array_push($jojos,'東方仗助','ジョルノ・ジョバァーナ','空条徐倫');

上記のように複数の要素を追加できるのですが

一つの要素のみであれば、

$jojos[] = '東方定助';

のように角カッコの中に代入するような形で追加することが出来ます

この様に配列の要素の中身を書き換えることになります

array_merge()関数について

$joothters = ['ジョナサン・ジョースター','ジョセフ・ジョースター','空条承太郎'];
$jojos = ['東方仗助','ジョルノ・ジョバァーナ','空条徐倫'];
$hello = array_merge($joothters,$jojos);

こちらの関数は連想配列通しを連結します

最初の$joothtersから始まりその最後尾から$jojosが連結します

array_merge()関数は連結した値を返すだけなので元の配列には影響しません

なので$helloという変数にその値を代入しています

この様に元の配列に影響を与えるか否かで破壊的な関数か非破壊的な関数かに分かれるので自分が使用しようとしている関数がどちらなのかは最低限意識しておきたいですね。

他の関数も紹介します

array_unshift() 先頭に要素を追加する

こちらの関数は配列の先頭に要素を追加する事ができます

array_unshift($hello,'荒木飛呂彦');
var_dump($hello);
array_shift($hello);
var_dump($hello);

array_shift() 先頭の要素を削除(取り出す)する

こちらの関数はその逆で先頭から要素を削除します

ただしこの関数は返り値としてその抜き取った要素を返してくれます

つまり、

$author = array_shift($hello);
var_dump($author);//"荒木飛呂彦"になる

最初の要素を抜き取る関数と言えます

同じような関数で、

array_pop() 最後の要素を抜き取る

$last = array_pop($jojo);
var_dump($last);

なのでこちらの関数も元の配列の要素には影響があります

以上簡単にですがまとめに入ります

  • array_push()要素を追加する
  • array_merge()配列を連結する
  • array_unshift() 先頭に要素を追加する
  • array_shift() 先頭の要素を削除(取り出す)する
  • array_pop() 最後の要素を抜き取る

のような形ですね

また学習を進めていき覚えられたことがあれば追記したいと思います

コメントをお待ちしております

お気軽にコメントをどうぞ。

CAPTCHA