PHPのarray_spliceの使い方

Pocket

PHPには配列を操作するarray_spliceという関数があります。
よく分からないのでまとめてみました。

基本

削除部分の配列=array_splice(元の配列,最初の位置,長さ,別の配列);

イメージとしては「元の配列の一部分を削除する。戻り値は削除した部分の配列」です。
「カットして、カットした部分を返す」と言ってもいいかもしれません。
さらに「カットした部分に別の配列を当てはめる」こともできます。

長さを省略

長さを省略すると指定した位置から最後までが削除されます。

$moto=array(0,1,2,3,4,5);
$saki=array_splice($moto,2);
print_r($moto);//$moto=array(0,1)
print_r($saki);//$saki=array(2,3,4,5)

長さを指定

長さを指定すると指定した位置から長さ(個数)分が削除されます。

$moto=array(0,1,2,3,4,5);
$saki=array_splice($moto,2,3);
print_r($moto);//$moto=array(0,1,5)
print_r($saki);//$saki=array(2,3,4)

別の配列を指定

別の配列を指定すると削除された部分にその配列が挿入されます。

$moto=array(0,1,2,3,4,5);
$betsu=array(10,11,12);
$saki=array_splice($moto,2,3,$betsu);
print_r($moto);//$moto=array(0,1,10,11,12,5)
print_r($saki);//$saki=array(2,3,4)

array_splice

元の配列に別の配列を追加

JavaScriptにはconcatという配列の後に別の配列を追加するメソッドがあります。
PHPにはこれがありませんが同じことをarray_spliceで実現できます。
「最初の位置」として元の配列の長さを指定すると元の配列の後から削除されることになりますが「長さ」として0を指定すると何も削除されません。このとき「別の配列」を指定すると、元の配列の後に置かれるので、結果として、元の配列の後に別の配列を追加したことになります。

$moto=array(0,1,2,3,4,5);
$betsu=array(10,11,12);
$saki=array_splice($moto,count($moto),0,$betsu);
print_r($moto);//$moto=array(0,1,2,3,4,5,10,11,12)
print_r($saki);//$saki=array()

[ 2015年11月17日 | カテゴリー: PHP | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報