PHPで 配列の先頭・末尾・n番目を削除する方法 です。

配列を用意

対象の配列はいずれの場合も以下とします。

array(5) {
  [0]=>
  string(7) "item-01"
  [1]=>
  string(7) "item-02"
  [2]=>
  string(7) "item-03"
  [3]=>
  string(7) "item-04"
  [4]=>
  string(7) "item-05"
}

先頭(最初)を削除

配列の先頭(最初)を削除するには、array_shift関数「array_shift()」を使う。

サンプル

$arr = array('item-01','item-02','item-03','item-04','item-05');
array_shift($arr);

実行結果

array(4) {
  [0]=>
  string(7) "item-02"
  [1]=>
  string(7) "item-03"
  [2]=>
  string(7) "item-04"
  [3]=>
  string(7) "item-05"
}

末尾(最後)を削除

配列の末尾(最後)を削除するには、array_pop関数「array_pop()」を使う。

サンプル

$arr = array('item-01','item-02','item-03','item-04','item-05');
array_pop($arr);

実行結果

array(4) {
  [0]=>
  string(7) "item-01"
  [1]=>
  string(7) "item-02"
  [2]=>
  string(7) "item-03"
  [3]=>
  string(7) "item-04"
}

n番目を削除

配列の先頭を削除するには、array_splice関数「array_splice()」を使う。

array_splice($arr, 削除する位置, 削除する数);

サンプル

$arr = array('item-01','item-02','item-03','item-04','item-05');
array_splice($arr, 1, 3);

実行結果

array(2) {
  [0]=>
  string(7) "item-01"
  [1]=>
  string(7) "item-05"
}

n番目以降を全て削除したい場合

array_splice関数では、第三引数を省略した場合、二引数に指定した位置以降のデータが全て削除される。

$arr = array('item-01','item-02','item-03','item-04','item-05');
array_splice($arr, 3);

/*array(3) {
  [0]=>
  string(7) "item-01"
  [1]=>
  string(7) "item-02"
  [2]=>
  string(7) "item-03"
}*/

n番目を削除 その2

unset() でIndexを指定して削除することも可能。削除するだけでindexが変更されない点に注意。

サンプル

$arr = array('item-01','item-02','item-03','item-04','item-05');
unset($arr[1] ,$arr[3]);

実行結果

array(3) {
  [0]=>
  string(7) "item-01"
  [2]=>
  string(7) "item-03"
  [4]=>
  string(7) "item-05"
}

indexを詰めたい場合

indexを詰めたい場合は array_values関数「array_values()」を使う。

$arr = array('item-01','item-02','item-03','item-04','item-05');
$arr = array_values($arr);

/*array(3) {
  [0]=>
  string(7) "item-01"
  [1]=>
  string(7) "item-03"
  [2]=>
  string(7) "item-05"
}*/

参考

PHP: 配列 関数 – Manual