array_spliceのマニュアルでわからない点が3つあります。
(1)
PHP
1 2$input = array("red", "green", "blue", "yellow"); 3array_splice($input, 1, -1); 4// ここでは $input は array("red", "yellow") となる
配列$inputのインデックス番号1("green")から-1の長さ分を削除?という意味だと思うのですが、第3引数lengthが負のときの意味がわかりません。
負の length が指定された場合、削除される部分の末尾の位置は配列の末尾を基準にして計算されます。
ここではなぜ["red", "yellow"]となるのでしょうか?
(2)
PHP
1$input = array("red", "green", "blue", "yellow"); 2array_splice($input, -1, 1, array("black", "maroon")); 3//ここでは $input は array("red", "green", "blue", "black", "maroon") となる
第2引数はoffsetです。
offsetが負の場合、削除される部分は、inputの末尾から数えた位置からとなります。
この場合、offsetが-1なので
["red", "green", "blue", "yellow"]の末尾の1番目である"yellow"を削除し、
array("black", "maroon")に代替している。
ということだと思いますが、末尾からの数え方は配列のように0番目からではなく、-1番目が末尾の値と考えて良いのですか?
(3)
PHP
1$input = array("red", "green", "blue", "yellow"); 2array_splice($input, 3, 0, "purple"); 3// ここでは $input は array("red", "green","blue", "purple", "yellow"); となる
length にゼロを指定した場合は、どの要素も削除しません。
("red", "green", "blue", "yellow")で、インデックス番号3の値は"yellow"ですが
この場合のイメージとしては、
3番目の値を削除しないが代替する=3番目の値を挿入するために、現在3番目にある"yellow"に後ろに下がってもらう。このような感覚で良いでしょうか?
教えていただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/07 16:25
2017/09/07 17:29
2017/09/07 17:32
退会済みユーザー
2017/09/07 20:45 編集
2017/09/08 06:00
退会済みユーザー
2017/09/08 06:09
2017/09/08 06:42