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>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, 2 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
削除したのは、
Array
(
[0] => 赤
[1] => 青
[2] => 緑
)
削除後の配列は、
Array
(
[0] => 白
[1] => 黒
)
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>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
echo '削除したのは、<br />';
print_r( array_splice( $varArray, -3 ) );
echo '削除後の配列は、<br />';
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
削除したのは、
Array
(
[0] => 赤
[1] => 青
[2] => 緑
)
削除後の配列は、
Array
(
[0] => 白
[1] => 黒
)
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>
<?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] => 緑
)
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>
<?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] => 緑
)
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>
<?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] => 緑
)
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>
<?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] => 黒
)
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>
<?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] => 緑
)
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>
<?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] => 緑
)
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>
<?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] => グリーン
)
)
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>
<?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] => みどり
)
)
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>
<?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] => みどり
)
)
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] => みどり
)
)