[PHP] 配列の最初と最後の取得

配列の最初と最後の取得

配列の最後を取得したかったのですが、
$data[count($data)-1]が欲しかったけどそもそも順番が連想配列になっていたりで取得に一手間。結構いい加減な名前の関数があったはず。。。

そうend()関数

最初と最後を取得する関数

最初の列を取得はreset(), 最後の列を取得するのはend()関数。この適当な感じの名前がPHPらしいですね。array_shift()とarray_pop()という同じような関数は存在するのですが、取得した配列の中身を取り出して(配列から消す)しまうので注意が必要ですね。

$data = ['start', 'apple', 'woman', 'man', 'end'];

// 配列の最初と最後を取得する
var_dump(reset($data));
var_dump(end($data));
var_dump($data);

// 配列の最後の列を取り出す(配列内から最後の列がなくなる)
var_dump(array_pop($data));
var_dump($data);

// 配列の最初の列を取り出す(配列内から最初の列がなくなる)
var_dump(array_shift($data));
var_dump($data);

実行結果

$ php start_end.php
string(5) "start"
string(3) "end"
array(5) {
  [0]=> string(5) "start"
  [1]=> string(5) "apple"
  [2]=> string(5) "woman"
  [3]=> string(3) "man"
  [4]=> string(3) "end"
}
string(3) "end"
array(4) {
  [0]=> string(5) "start"
  [1]=> string(5) "apple"
  [2]=> string(5) "woman"
  [3]=> string(3) "man"
}
string(5) "start"
array(3) {
  [0]=> string(5) "apple"
  [1]=> string(5) "woman"
  [2]=> string(3) "man"
}