PHP: 配列の要素を削除する(先頭・末尾・途中)

PHPで配列から要素を削除する場合の記述方法を説明します。

先頭を削除

配列の先頭の要素を削除する場合は、array_shift()関数を使います。

array_shift(配列)

戻り値は削除した先頭要素の値です。
削除すると配列のインデックス(添字)は0からの連番で振りなおされます。

$arr = [10, 20, 30];

array_shift($arr);

print_r($arr);

// 実行結果
Array        
(
    [0] => 20
    [1] => 30
)

末尾を削除

配列の末尾の要素を削除する場合は、array_pop()関数を使います。

array_pop(配列)

戻り値は削除した末尾要素の値です。

$arr = [10, 20, 30];

array_pop($arr);

print_r($arr);

// 実行結果
Array
(
    [0] => 10
    [1] => 20
)

途中を削除

配列の途中の要素を削除する場合は、array_splice()関数を使います。

書式
array_splice(配列, 削除開始の要素番号, 要素数)

戻り値は削除した要素の配列です。削除した要素数が1つの場合でも配列が戻されます。
削除すると配列のインデックス(添字)は0からの連番で振りなおされます。

下はarray_splice()関数を使った削除の例です。 配列と戻り値のそれぞれを print_r() で表示しています。

$arr = [10, 20, 30, 40, 50];

$ret = array_splice($arr, 1, 2);

echo "--- 配列 ---" . " \n";
print_r($arr);
echo "--- 戻り値 ---" . " \n";
print_r($ret);

// 実行結果
--- 配列 --- 
Array
(
    [0] => 10
    [1] => 40
    [2] => 50
)
--- 戻り値 --- 
Array
(
    [0] => 20
    [1] => 30
)