array_splice()

PHPのarray_splice()関数は、配列の一部の配列要素を、削除、または、新たな配列要素に置き換える、組み込み関数。

定義

配列型 array_splice( 配列型 &$input, 整数型 $offset[, 整数型 $length[, 多様な型 $replacement]] );

パラメータ

配列型 &$input

対象の配列を指定。

整数型 $offset

削除開始位置を、インデックスで指定する。

正数の場合、先頭の配列要素から数える。先頭の配列要素を「0」とする

負数の場合、最後の配列要素から数える。最後の配列要素を「0」とする

整数型 $length

オプション。

削除する配列要素数。

多様な型 $replacement

オプション。

置き換える新たな配列要素。

戻り値

削除した配列。

構文

削除開始位置を指定し、一部の配列要素を削除

削除した配列 = array_splice( 配列, 削除開始位置 );

「削除開始位置」から「削除する配列要素数」の数の配列要素を、「配列」から削除し、削除した配列を、「削除した配列」に格納。

削除開始位置と削除数を指定し、一部の配列要素を削除

削除した配列 = array_splice( 配列, 削除開始位置, 削除する配列要素数 );

「削除開始位置」から「削除する配列要素数」の数の配列要素を、「配列」から削除し、削除した配列を、「削除した配列」に格納。

配列の一部を、新たな配列要素に置き換え

削除した配列 = array_splice( 配列, 削除開始位置, 削除する配列要素数, 新たな配列要素 );

「削除開始位置」から「削除する配列要素数」の数の配列要素を、「配列」から削除し、「新たな配列要素」に置き換える。削除した配列を、「削除した配列」に格納。

サンプル

配列から、削除開始位置を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [0] => 赤
    [1] => 青
    [2] => 緑
)
削除後の配列は、
Array
(
    [0] => 白
    [1] => 黒
)

配列から、削除開始位置を負数で指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, -3 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [0] => 赤
    [1] => 青
    [2] => 緑
)
削除後の配列は、
Array
(
    [0] => 白
    [1] => 黒
)

配列から、削除開始位置と削除数を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [0] => 赤
    [1] => 青
)
削除後の配列は、
Array
(
    [0] => 白
    [1] => 黒
    [2] => 緑
)

配列から、削除開始位置(負数)と削除数を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, -3, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [0] => 赤
    [1] => 青
)
削除後の配列は、
Array
(
    [0] => 白
    [1] => 黒
    [2] => 緑
)

配列の一部を、新たな配列要素に置き換え

<pre>
<?php
$varArrayA = array( "白", "黒", "赤", "青", "緑" );
$varArrayB = array( "シアン", "マゼンタ", "イエロー" );
echo '置き換えたのは、<br />';
print_r( array_splice( $varArrayA, 2, 2, $varArrayB ) );
echo '置き換え後の配列は、<br />';
print_r( $varArrayA );
?>
</pre>

↓↓↓出力結果↓↓↓

置き換えたのは、
Array
(
    [0] => 赤
    [1] => 青
)
置き換え後の配列は、
Array
(
    [0] => 白
    [1] => 黒
    [2] => シアン
    [3] => マゼンタ
    [4] => イエロー
    [5] => 緑
)

連想配列から、削除開始位置を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array(
    "white" => "白",
    "black" => "黒",
    "red" => "赤",
    "blue" => "青",
    "green" => "緑"
);
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [red] => 赤
    [blue] => 青
    [green] => 緑
)
削除後の配列は、
Array
(
    [white] => 白
    [black] => 黒
)

連想配列から、削除開始位置と削除数を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array(
    "white" => "白",
    "black" => "黒",
    "red" => "赤",
    "blue" => "青",
    "green" => "緑"
);
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [red] => 赤
    [blue] => 青
)
削除後の配列は、
Array
(
    [white] => 白
    [black] => 黒
    [green] => 緑
)

連想配列の一部を、新たな配列要素に置き換え

<pre>
<?php
$varArrayA = array(
    "white" => "白",
    "black" => "黒",
    "red" => "赤",
    "blue" => "青",
    "green" => "緑"
);
$varArrayB = array(
    "cyan" => "シアン",
    "magenta" => "マゼンタ",
    "yellow" => "イエロー"
);
echo '置き換えたのは、<br />';
print_r( array_splice( $varArrayA, 2, 2, $varArrayB ) );
echo '置き換え後の配列は、<br />';
print_r( $varArrayA );
?>
</pre>

↓↓↓出力結果↓↓↓

置き換えたのは、
Array
(
    [red] => 赤
    [blue] => 青
)
置き換え後の配列は、
Array
(
    [white] => 白
    [black] => 黒
    [0] => シアン
    [1] => マゼンタ
    [2] => イエロー
    [green] => 緑
)

多次元配列から、削除開始位置を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array(
    "english" => array( "Red", "Blue", "Green" ),
    "katakana" => array( "レッド", "ブルー", "グリーン" ),
    "Kanji" => array(
        "aka" => "赤",
        "ao" => "青",
        "ki" => "緑"
    ),
    "hiragana" => array( "あか", "あお", "みどり" )
);
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [Kanji] => Array
        (
            [aka] => 赤
            [ao] => 青
            [ki] => 緑
        )

    [hiragana] => Array
        (
            [0] => あか
            [1] => あお
            [2] => みどり
        )

)
削除後の配列は、
Array
(
    [english] => Array
        (
            [0] => Red
            [1] => Blue
            [2] => Green
        )

    [katakana] => Array
        (
            [0] => レッド
            [1] => ブルー
            [2] => グリーン
        )

)

多次元配列から、削除開始位置と削除数を指定し、一部の配列要素を削除

<pre>
<?php
$varArray = array(
    "english" => array( "Red", "Blue", "Green" ),
    "katakana" => array( "レッド", "ブルー", "グリーン" ),
    "Kanji" => array(
        "aka" => "赤",
        "ao" => "青",
        "ki" => "緑"
    ),
    "hiragana" => array( "あか", "あお", "みどり" )
);
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2, 1 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

削除したのは、
Array
(
    [Kanji] => Array
        (
            [aka] => 赤
            [ao] => 青
            [ki] => 緑
        )

)
削除後の配列は、
Array
(
    [english] => Array
        (
            [0] => Red
            [1] => Blue
            [2] => Green
        )

    [katakana] => Array
        (
            [0] => レッド
            [1] => ブルー
            [2] => グリーン
        )

    [hiragana] => Array
        (
            [0] => あか
            [1] => あお
            [2] => みどり
        )

)

多次元配列の一部を、新たな配列要素に置き換え

<pre>
<?php
$varArrayA = array(
    "english" => array( "Red", "Blue", "Green" ),
    "katakana" => array( "レッド", "ブルー", "グリーン" ),
    "hiragana" => array( "あか", "あお", "みどり" )
);
$varArrayB = array(
    "Kanji" => array(
        "aka" => "赤",
        "ao" => "青",
        "ki" => "緑"
    )
);
echo '置き換えたのは、<br />';
print_r( array_splice( $varArrayA, 0, 2, $varArrayB ) );
echo '置き換え後の配列は、<br />';
print_r( $varArrayA );
?>
</pre>

↓↓↓出力結果↓↓↓

置き換えたのは、
Array
(
    [english] => Array
        (
            [0] => Red
            [1] => Blue
            [2] => Green
        )

    [katakana] => Array
        (
            [0] => レッド
            [1] => ブルー
            [2] => グリーン
        )

)
置き換え後の配列は、
Array
(
    [0] => Array
        (
            [aka] => 赤
            [ao] => 青
            [ki] => 緑
        )

    [hiragana] => Array
        (
            [0] => あか
            [1] => あお
            [2] => みどり
        )

)

スポンサード リンク

カテゴリー: PHP, 取得, 組み込み関数, 編集, 配列 タグ: パーマリンク