shift,pop,unshift,pushの名前がこんがらがるので自分なりの覚え方など。
配列のまとめが増えすぎたのでそのうち全部いい感じにまとめたい(願望
array_shift
array_shift ( array &$array )
配列の先頭を切り取って返す。
返り値は配列の先頭にいた値。元の配列からはその値はなくなる。
添え字が数値だった場合は添字も振りなおされる。
元の配列から値をシフトする。
$arr = array("banana","orange","apple","peach","grape");
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => grape
)
*/
$fruit = array_shift($arr);
print_r($arr);
/*
Array
(
[0] => orange
[1] => apple
[2] => peach
[3] => grape
)
*/
print_r($fruit)
// banana
array_pop
array_pop ( array &$array )
array_shift
の最後バージョン。最後を切り取って返す。
数字なら添字も詰まるので、array_pop
した後要素を追加した場合はその位置に入る。ポップアップとかのイメージ。なんpullとかpickにしてくれなかったのか…。
$arr = array("banana","orange","apple","peach","grape");
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => grape
)
*/
$fruit = array_pop($arr);
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
)
*/
print_r($fruit);
// grape
$arr[] = "mango";
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => mango
)
*/
array_unshift
array_unshift ( array &$array ,"追加する値"[,"追加する値"] )
1つ以上の要素を配列の先頭に追加。追加する順は引数として与えた順序のまま。添字が数値なら0から振りなおされる。
shift(取り出し)の逆だからunshiftなんだろうけど…いまいちピンとこない。
$arr = array("banana","orange","apple","peach","grape");
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => grape
)
*/
array_unshift($arr,"mango","melon");
print_r($arr);
/*
Array
(
[0] => mango
[1] => melon
[2] => banana
[3] => orange
[4] => apple
[5] => peach
[6] => grape
)
*/
array_push
array_unshift
の後ろバージョン。最後に値を追加。
$arr[]
と動きは同じ。1個だけなら$arr[]
の方が早い。
配列の後ろに値を押し付ける、なイメージ。
$arr = array("banana","orange","apple","peach","grape");
print_r($arr);
/*
Array
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => grape
)
*/
array_push($arr,"mango","melon");
print_r($arr);
/*
(
[0] => banana
[1] => orange
[2] => apple
[3] => peach
[4] => grape
[5] => mango
[6] => melon
)
*/