PHPを学習しておりまして、アウトプットのために投稿させて頂きます。
配列操作関数まとめ
array_unshift
配列の先頭に値を追加
$scores = [30, 40, 50];
array_unshift($scores, 10, 20);
print_r($scores);
Array
(
[0] => 10
[1] => 20
[2] => 30
[3] => 40
[4] => 50
)
array_push
配列の末尾に値を追加
$scores = [30, 40, 50];
array_push($scores, 60, 70);
print_r($scores);
Array
(
[0] => 30
[1] => 40
[2] => 50
[3] => 60
[4] => 70
)
array_slice
先頭から指定した個数分の値を返す
array_slice(変数, 位置, 個数);のように書く
$scores = [30, 40, 50, 60, 70, 80];
$partial = array_slice($scores, 2, 4);
# 最後までを取得する場合は個数は省略できる
# 末尾から指定したい場合は($scores, -2)等とする
print_r($partial);
Array
(
[0] => 50
[1] => 60
[2] => 70
[3] => 80
)
array_splice
指定した位置から指定した個数分の値を取り除く
array_splice(変数, 位置, 個数);のように書く。
$scores = [30, 40, 50, 60, 70, 80];
array_splice($scores, 2, 1);
# 値を追加したい場合はarray_splice($scores, 2, 1, 100);のように書く
print_r($scores);
Array
(
[0] => 30
[1] => 40
[2] => 60
[3] => 70
[4] => 80
)
sort
配列を小さい順に並び替える
$scores = [40, 50, 20, 30];
sort($scores);
# 大きい順に並べるときはrsortを使う
print_r($scores);
shuffle
配列をシャッフルする
$scores = [40, 50, 20, 30];
shuffle($scores);
print_r($scores);
Array
(
[0] => 20
[1] => 40
[2] => 50
[3] => 30
)
# 毎回ランダムにシャッフルされる
array_rand
指定した個数をランダムに取り出し、新たに配列を作成
*このとき取り出すのは値ではなく、キーを取り出す
$scores = [40, 50, 20, 30];
$picked = array_rand($scores, 2);
# 新しい配列を作るので、新しい変数に追加しています
print_r($picked). PHP_EOL;
# 値を取り出すためには以下のようにする
echo $scores[$picked[0]] . PHP_EOL;
echo $scores[$picked[1]] . PHP_EOL;
Array
(
[0] => 1
[1] => 2
)
50
20
array_fill
指定した位置から指定した個数分を値で埋める
$scores = array_fill(0, 5, 10);
print_r($scores);
Array
(
[0] => 10
[1] => 10
[2] => 10
[3] => 10
[4] => 10
)
array_merge
配列同士をくっつけ、新しい配列を作る
$a = [3, 4, 8];
$b = [4, 8, 12];
$merged = array_merge($a, $b);
// $merged = [...$a, ...$b];#これも同じ意味
print_r($merged);
Array
(
[0] => 3
[1] => 4
[2] => 8
[3] => 4
[4] => 8
[5] => 12
)
array_unique
配列の中から一意の値を取り出す
$a = [3, 4, 8, 3];
$uniques = array_unique($a);
print_r($uniques);
Array
(
[0] => 3
[1] => 4
[2] => 8
)
array_diff
配列同士を比較し、差分を取り出す
$a = [3, 4, 8];
$b = [4, 8, 12];
$diff1 = array_diff($a, $b);
print_r($diff1);
$diff2 = array_diff($b, $a);
print_r($diff2);
# diff1の実行結果
Array
(
[0] => 3
)
# diff2の実行結果
Array
(
[2] => 12
)
array_intersect
配列同士を比較し、共通項を取り出し、新しい配列を作る
$a = [3, 4, 8];
$b = [4, 8, 12];
$common = array_intersect($a, $b);
print_r($common);
Array
(
[1] => 4
[2] => 8
)
最後に
他にもまだまだありますが、今回は以上です!