関数・クラス解説

array_splice

version:PHP 4, PHP 5, PHP 7 (公式)

配列の一部を削除し、他の要素で置換する

公式リファレンス

書式

array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) : array

説明

配列 input から offset および length で指定された要素を削除し、配列 replacement でそれを置換します。

注意:

input の配列の数値添字は保存されないことに注意しましょう。

注意: replacement が配列でない場合は、 型変換 を行います (つまり (array) $replacement とします)。 たとえば replacement にオブジェクトや NULL などを指定した場合に、 予期せぬ動きをする可能性があります。

パラメータ

input
入力の配列。
offset
offset が正の場合、削除される部分は 配列 input の最初から指定オフセットの ぶんだけ進んだ位置からとなります。 offset が負の場合、削除される部分は、 input の末尾から数えた位置からとなります。
length
length が省略された場合、 offset から配列の最後までが全て削除されます。 length が指定され、正の場合、複数の要素が削除されます。 負の length が指定された場合、削除される部分の末尾の位置は配列の末尾を基準にして計算されます。 length にゼロを指定した場合は、どの要素も削除しません。
ヒント replacement も指定した場合に offset から配列の最後まで全てを削除するには、 length を求めるために count($input) を使用してください。
replacement
配列 replacement が指定された場合、 削除された要素は、この配列の要素で置換されます。 offset および length で何も削除しないと指定した場合、配列 replacement の要素は offset で指定された位置に挿入されます。
注意: 置換される配列のキーは保存されないことに注意してください。
もし replacement に一つしか要素がない場合、 要素そのものが配列やオブジェクトあるいは NULL でない限り、array() や 角括弧 で括る必要はありません。

返値

抽出された要素を含む配列を返します。

サンプル

例1 array_splice() の例

$input = array("red", "green", "blue", "yellow"); array_splice($input, 2); var_dump($input); $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, -1); var_dump($input); $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, count($input), "orange"); var_dump($input); $input = array("red", "green", "blue", "yellow"); array_splice($input, -1, 1, array("black", "maroon")); var_dump($input);

上の例の出力は以下となります。

array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } array(2) { [0]=> string(3) "red" [1]=> string(6) "yellow" } array(2) { [0]=> string(3) "red" [1]=> string(6) "orange" } array(5) { [0]=> string(3) "red" [1]=> string(5) "green" [2]=> string(4) "blue" [3]=> string(5) "black" [4]=> string(6) "maroon" }

例2 同じ動きをする、array_splice() の様々な例

以下の文は、すべて2つとも同じ意味です:

// $input に 2 つの要素を追加します array_push($input, $x, $y); array_splice($input, count($input), 0, array($x, $y)); // $input の最後の要素を削除します array_pop($input); array_splice($input, -1); // $input の最初の要素を削除します array_shift($input); array_splice($input, 0, 1); // $input の先頭に要素を挿入します array_unshift($input, $x, $y); array_splice($input, 0, 0, array($x, $y)); // インデックス $x の $input を置き換えます $input[$x] = $y; // キーがオフセットと等価な配列に対して array_splice($input, $x, 1, $y);

参考

  • array_merge() - ひとつまたは複数の配列をマージする
  • array_slice() - 配列の一部を展開する
  • unset() - 指定した変数の割当を解除する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール