【PHP】配列の使い方まとめ

PHPの配列の初期化、配列系関数の使い方などをメモしていきます。
内容は随時更新していきます。
目次
- 1 初期化・宣言・定義
- 2 配列の末尾に要素を追加
- 3 count(配列の要素数を取得)
- 4 explode(文字列を分解して配列にする)
- 5 implode(配列を結合して文字列にする)
- 6 in_array(指定した値が配列の要素に存在するかチェック)
- 7 array_search(指定した値と一致する配列の要素のキーを取得)
- 8 array_keys(配列のキーを全て取得)
- 9 array_values(配列の要素を全て取得)
- 10 array_unique(重複した配列の要素を削除)
- 11 array_reverse(配列の順番を逆にする)
- 12 array_diff(配列と配列を比較する)
- 13 array_merge(配列に配列を追加する)
- 14 array_column(連想配列の配列から、ある要素だけを取り出して配列にする)
初期化・宣言・定義
一次元配列
$arr = [1, 2];
var_dump($arr);
/*
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
*/
なお、下記は同じ内容になります。
$arr = [1, 2];
$arr = array(1, 2);
連想配列
キーに文字列を使うこともできます。
$arr = [
"red" => "赤",
"blue" => "青",
];
var_dump($arr);
/*
array(2) {
["red"]=>
string(3) "赤"
["blue"]=>
string(3) "青"
}
*/
多次元配列
配列の中に配列を詰めたものを多次元配列といいます。
$arr = [
[1, 2],
[3, 4],
];
var_dump($arr);
/*
array(2) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
[1]=>
array(2) {
[0]=>
int(3)
[1]=>
int(4)
}
}
*/
連想配列の中に配列を詰めることもできます。
(その逆も可能です)
$arr = [
"九州" => ["福岡", "鹿児島", "大分", "佐賀", "熊本", "長崎", "宮崎"],
"四国" => ["愛媛", "香川", "徳島", "高知"]
];
var_dump($arr);
/*
array(2) {
["九州"]=>
array(7) {
[0]=>
string(6) "福岡"
[1]=>
string(9) "鹿児島"
[2]=>
string(6) "大分"
[3]=>
string(6) "佐賀"
[4]=>
string(6) "熊本"
[5]=>
string(6) "長崎"
[6]=>
string(6) "宮崎"
}
["四国"]=>
array(4) {
[0]=>
string(6) "愛媛"
[1]=>
string(6) "香川"
[2]=>
string(6) "徳島"
[3]=>
string(6) "高知"
}
}
*/
配列の末尾に要素を追加
$arr = [1, 2];
$arr[] = 3;
var_dump($arr);
/*
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
*/
count(配列の要素数を取得)
$arr = [1, 2];
var_dump(count($arr));
//int(2)
explode(文字列を分解して配列にする)
var_dump(explode(",", "1,2,3"));
/*
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
*/
implode(配列を結合して文字列にする)
var_dump(implode(",", [1, 2, 3]));
//string(5) "1,2,3"
in_array(指定した値が配列の要素に存在するかチェック)
指定した値が配列の要素に存在する場合、trueを返します。
存在しない場合、falseを返します。
$arr = [1, 2];
var_dump(in_array(1, $arr));
//bool(true)
var_dump(in_array(3, $arr));
//bool(false)
array_search(指定した値と一致する配列の要素のキーを取得)
指定した値が配列の要素に存在する場合、その要素のキーを返します。
存在しない場合、falseを返します。
$arr = [1, 2];
var_dump(array_search(1, $arr));
//int(0)
var_dump(array_search(3, $arr));
//bool(false)
array_keys(配列のキーを全て取得)
$arr = [
"red" => "赤",
"blue" => "青",
];
var_dump(array_keys($arr));
/*
array(2) {
[0]=>
string(3) "red"
[1]=>
string(4) "blue"
}
*/
array_values(配列の要素を全て取得)
キーが飛んでいる配列を詰めたいとき、連想配列を配列に変換する際や、後述するarray_uniqueと合わせて使うことが多いです。
$arr = [
"red" => "赤",
"blue" => "青",
];
var_dump(array_values($arr));
/*
array(2) {
[0]=>
string(3) "赤"
[1]=>
string(3) "青"
}
*/
array_unique(重複した配列の要素を削除)
$arr = ["赤", "赤", "青"];
var_dump(array_unique($arr));
/*
array(2) {
[0]=>
string(3) "赤"
[2]=>
string(3) "青"
}
*/
順番によってはキーが飛び飛びになってしまいます。
キーを振りなおしたい場合はarray_valuesと合わせて使います。
$arr = ["赤", "赤", "青"];
var_dump(array_values(array_unique($arr)));
/*
array(2) {
[0]=>
string(3) "赤"
[1]=>
string(3) "青"
}
*/
array_reverse(配列の順番を逆にする)
$arr = [1, 2, 3];
var_dump(array_reverse($arr));
/*
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
*/
array_diff(配列と配列を比較する)
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [2, 3, 6, 7, 8];
$diff = array_diff($arr1, $arr2);
var_dump($diff);
/*
array(3) {
[0]=>
int(1)
[3]=>
int(4)
[4]=>
int(5)
}
*/
array_merge(配列に配列を追加する)
$arr1 = [1, 2, 3];
$arr2 = [4, 5, 6];
$array_merge = array_merge($arr1, $arr2);
var_dump($array_merge);
/*
array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
}
*/
array_column(連想配列の配列から、ある要素だけを取り出して配列にする)
$records = [
["id" => 1, "name" => "東京"],
["id" => 2, "name" => "神奈川"],
["id" => 3, "name" => "千葉"],
["id" => 4, "name" => "埼玉"],
];
$names = array_column($records, "name");
var_dump($names);
/*
array(4) {
[0]=>
string(6) "東京"
[1]=>
string(9) "神奈川"
[2]=>
string(6) "千葉"
[3]=>
string(6) "埼玉"
}
*/
以上になります。
お疲れさまでした。