ホームページ  >  記事  >  バックエンド開発  >  PHP 関数 array_splice() は、指定された要素を配列から削除し、他の値に置き換えます。

PHP 関数 array_splice() は、指定された要素を配列から削除し、他の値に置き換えます。

黄舟
黄舟オリジナル
2017-11-09 09:05:442186ブラウズ

配列から要素を削除し、新しい要素で置き換えます:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
array_splice($a1,0,2,$a2);
print_r($a1);
?>

定義と使用法

array_splice() 関数は、配列から選択した要素を削除し、新しい要素で置き換えます。この関数は、削除された要素の配列も返します。

ヒント: 関数が要素を削除しない場合 (長さ = 0)、置換配列は開始パラメーターの位置から挿入されます (例 2 を参照)。

: 置換配列内のキー名は保持されません。

構文

array_splice(array,start,length,array)
パラメータ 説明
配列 必須。配列を指定します。
開始 必須。数値。 delete 要素の開始位置を指定します。 0 = 最初の要素。 値が正の数に設定されている場合、削除は値で指定された配列内のオフセットから始まります。値が負の数に設定されている場合、配列の末尾から値で指定されたオフセットから削除が開始されます。 -2 は、配列の最後から 2 番目の要素から開始することを意味します。
長さ はオプションです。数値。削除する要素の数を指定します。これは、返される配列の長さでもあります。 値が正の数に設定されている場合、その数の要素が削除されます。この値を負の数に設定すると、配列の先頭から末尾の逆数までのすべての要素が削除されます。この値が設定されていない場合は、start パラメーターで設定された位置から配列の末尾までのすべての要素が削除されます。
配列 オプション。元の配列に挿入される要素を含む配列を指定します。要素が 1 つしかない場合は、string に設定でき、配列に設定する必要はありません。

技術的な詳細

戻り値: 抽出された要素を含む配列を返します。
PHPバージョン: 4+

更多实例

实例 1

与本页前面部分的实例相同,但是输出返回的数组:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
?>

实例 2

带有设置为 0 的 length 参数:

<?php
$a1=array("0"=>"red","1"=>"green");
$a2=array("0"=>"purple","1"=>"orange");
array_splice($a1,1,0,$a2);
print_r($a1);
?>

在array_splice中,有这么一段代码:

/* Don&#39;t create the array of removed elements if it&#39;s not going
  * to be used; e.g. only removing and/or replacing elements */
 if (return_value_used) { // 如果有用到函数返回值则创建返回数组,否则不创建返回数组
   int size = length;
 
   /* Clamp the offset.. */
   if (offset > num_in) {
     offset = num_in;
   } else if (offset < 0 && (offset = (num_in + offset)) < 0) {
     offset = 0;
   }
 
   /* ..and the length */
   if (length < 0) {
     size = num_in - offset + length;
   } else if (((unsigned long) offset + (unsigned long) length) > (unsigned) num_in)     {
     size = num_in - offset;
   }
 
   /* Initialize return value */
   array_init_size(return_value, size > 0 ? size : 0);
   rem_hash = &Z_ARRVAL_P(return_value);
 }

array_splice函数返回的是被删除的切片。这段代码的意思是,如果array_splice需要返回值,那么才创建返回数组,否则不创建,以免浪费空间。这也是一个编程小技巧,仅当需要的时候才返回。比如在函数中使用$result = array_splice(...),那么return_value_used就是true。

以上がPHP 関数 array_splice() は、指定された要素を配列から削除し、他の値に置き換えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。