Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

PHP辞典

  1. トップページ
  2. PHP辞典
  3. array_splice() / array_slice()

array_splice() / array_slice()対応: PHP 4(2000)

配列の任意の位置で要素を削除・挿入・置換したり、配列の一部を切り出す関数です。

構文
// 配列の指定位置から要素を削除・挿入・置換します。
array_splice(配列, 開始位置, 削除する数, 挿入する配列);

// 配列の一部を切り出して新しい配列として返します。
array_slice(配列, 開始位置, 長さ, キーを保持するか);
関数一覧
関数概要
array_splice($array, $offset, $length, $replacement)配列の指定位置から要素を削除し、必要に応じて新しい要素を挿入します。削除された要素を配列で返します。元の配列は変更されます。
array_slice($array, $offset, $length, $preserve_keys)配列の指定位置から指定した数だけ要素を切り出して新しい配列として返します。元の配列は変更されません。
サンプルコード
<?php
$colors = ['赤', '青', '緑', '黄', '紫'];

// インデックス1から2つの要素を切り出します。元の配列は変わりません。
$sliced = array_slice($colors, 1, 2);
print_r($sliced); // 『青, 緑』の配列になります。

// 負のオフセットで末尾から切り出します。
$last_two = array_slice($colors, -2);
print_r($last_two); // 『黄, 紫』の配列になります。

// キーを保持して切り出します。
$preserved = array_slice($colors, 2, 2, true);
print_r($preserved); // キーが『2 => 緑, 3 => 黄』のまま保持されます。

// インデックス1から2つの要素を削除して、別の要素を挿入します。
$items = ['A', 'B', 'C', 'D', 'E'];
$removed = array_splice($items, 1, 2, ['X', 'Y', 'Z']);
print_r($removed); // 削除された『B, C』が返されます。
print_r($items); // 『A, X, Y, Z, D, E』に変わります。

// 要素を削除せずに挿入だけ行います。
$list = ['月', '水', '金'];
array_splice($list, 1, 0, ['火']);
print_r($list); // 『月, 火, 水, 金』になります。
概要

『array_splice()』は元の配列を直接変更する破壊的な関数で、削除・挿入・置換を一度に行えます。第3引数を『0』にすれば削除せずに挿入だけを行うこともでき、第4引数を省略すれば削除だけを行うこともできます。

『array_slice()』は元の配列を変更しない非破壊的な関数です。第4引数に『true』を渡すと元のキーが保持されます。デフォルトでは数値キーは0から振り直されるため、キーの値が重要な場合は『true』を指定してください。

配列の末尾や先頭だけを操作する場合は『array_push() / array_pop() / array_shift() / array_unshift()』のほうがシンプルに記述できます。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。