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"
}*/