以前に php array_splice の使用法について説明しましたが、今日は主にアプリケーションでのこの関数の詳細で具体的な状況について説明します。必要な方は参考にしてください。
array_splice の定義と使用法
説明
array array_splice ( array &$input , int $offset [, int $length [, array $replacement ]] )
array_splice() は、offset と length で指定された要素を入力配列から削除し、置換引数が指定されている場合は置換配列の要素で置き換えます。削除されたセルを含む配列を返します。入力内の数値キー名は保持されないことに注意してください。
オフセットが正の場合、入力配列のこの値で指定されたオフセットから削除が開始されます。 offset が負の場合、入力の末尾からこの値で指定されたオフセットで削除が開始されます。
長さを省略した場合、オフセットから末尾までの配列のすべての部分が削除されます。長さが指定されており、それが正の場合、この数のセルが削除されます。 length が指定されて負の場合、配列の末尾からカウントダウンした offset から length までのすべての要素が削除されます。ヒント: 置換が指定されたときに、オフセットから配列の末尾までのすべての要素を削除するには、長さとして count($input) を使用します。
置換配列が指定された場合、削除されたセルはこの配列内のセルに置き換えられます。オフセットと長さの組み合わせによって値が削除されない場合、置換配列内の要素はオフセットで指定された位置に挿入されます。置換配列内のキー名は保持されないことに注意してください。置換される値が単なるセルの場合、セル自体が配列でない限り、それに array() を追加する必要はありません。
次の式は、同じ方法で $input を変更します: array_splice() 同等の式 array_push($input, $x, $y) array_splice($input,
)コードは次のとおりです | コードをコピー |
カウント($input), 0, 配列($x, $y)) array_pop($input) array_splice($input, -1) array_shift($input) array_splice($input, 0, 1) array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y)) $input[$x] = $y // 等しいキー名とオフセットの配列の場合 array_splice($input, $x, 1, $y) |
削除されたセルを含む配列を返します。
例1
コードは次のとおりです | コードをコピー |
$a1=array(0=>「犬」,1=>「猫」,2=>「馬」,3=>「鳥」); $a2=array(0=>「トラ」,1=>「ライオン」); print_r(array_splice($a1,0,2,$a2)); ?> |
出力:
配列 ( [0] => 犬 [1] => 猫 ) 例 3
長さパラメータは 0 に設定されます:
コードは次のとおりです | コードをコピー |
$a1=array(0=>「犬」,1=>「猫」); $a2=array(0=>「トラ」,1=>「ライオン」); array_splice($a1,1,0,$a2); print_r($a1); ?> |
出力:
配列 ( [0] => 犬 [1] => トラ [2] => ライオン [3] => 猫 )
応用例
コードは次のとおりです | コードをコピー |
$input1 = array("赤", "緑", "青", "黄"); |
//残りを印刷
print_r($input1);
//削除されたものを印刷します
print_r($input2);
この関数の最初のパラメータはアドレス参照なので、戻り値は削除された部分になります。残りだけ見たいなら。このように書いてください。
コードは次のとおりです | コードをコピー |
$input = array("赤", "緑", "青", "黄"); array_splice($input, 2); print_r($input); |
================================================ === ==
マニュアルの例に説明を追加しました。 。
$input = array("赤", "緑", "青", "黄");
array_splice($input, 2);
// 2 番目以降の選択を開始し、残りのすべてに移動します。
//つまり、「青」、「黄」が選択されます
// $input は array("red", "green") になりました
array_splice($input, 1, -1);
//最初の選択の後で選択を開始し、残りの選択に戻り、選択した選択を削除します。
//つまり、「緑」、「青」が選択されます
// $input は array("red", " yellow") になりました
array_splice($input, 1, count($input), "オレンジ");
//最初の値の後に選択を開始し、残りのすべての値に移動します。選択された値は削除され、新しい値が現在のポインタの位置に追加されます。
//つまり、「緑」「青」「黄」が選択されます
// $input は array("red", "orange") になりました
array_splice($input, -1, 1, array("black", "maroon"));
//最後のものより前から選択を開始し、下から 1 つを選択し、選択したものを削除して、現在のポインターの位置に配列を追加します。
//つまり「黄色」が選択されています
// $input は array("red", "green","blue", "black", "maroon") になりました
array_splice($input, 3, 0, "紫");
// 3 番目以降の選択を開始し、何も選択せず、現在のポインターの位置に新しい値を挿入します。
//位置は「赤」「緑」「青」「黄」の間です
// $input は array("red", "green", "blue", "purple", " yellow");