配列(リスト)の一部を別の配列で置き換えるには (array_splice / splice) 2016/05/30
配列(リスト)の一部を別の配列で置き換える方法。
array_splice($arr, $off, $len, $newSubArray); // $arr 自体を変更
lst[off:endOff] = newSubList
arr[off...endOff] = newSubArray
関連
PHP 2016/05/27
array_splice
関数を使う。引数に渡した配列自体を書き換える。
$arr = array(10, 20, 30, 40, 50);
var_export($arr); echo "\n";
// =>
// array (
// 0 => 10,
// 1 => 20,
// 2 => 30,
// 3 => 40,
// 4 => 50,
// )
array_splice($arr, 3, 1, array(100, 200, 300));
var_export($arr); echo "\n";
// =>
// array (
// 0 => 10,
// 1 => 20,
// 2 => 30,
// 3 => 100,
// 4 => 200,
// 5 => 300,
// 6 => 50,
// )
array_splice
関数 | PHP Manual
http://php.net/manual/ja/function.array-splice.php
Python 2014/12/31
スライスの書式を代入演算子の左辺に置くと、その部分リストを新しいリストに置き換えられる。
lst = [10, 20, 30, 40, 50]
lst[3:4] = [100, 200, 300]
print(lst)
# => [10, 20, 30, 100, 200, 300, 50]
lst[2:] = [1, 2, 3]
print(lst)
# => [10, 20, 1, 2, 3]
Ruby / JRuby 2016/05/27
Array#[]
を使ったスライスを代入演算子の左辺に置くと、その部分リストを新しいリストに置き換えられる。
arr = [0, 10, 20, 30, 40, 50]
arr[3..4] = [100, 200, 300]
p arr
# => [0, 10, 20, 100, 200, 300, 50]
arr = [0, 10, 20, 30, 40, 50]
arr[3...4] = [100, 200, 300]
p arr
# => [0, 10, 20, 100, 200, 300, 40, 50]
arr = [0, 10, 20, 30, 40, 50]
arr[3,2] = [100, 200, 300]
p arr
# => [0, 10, 20, 100, 200, 300, 50]
[s..e]
の表記の場合は2つ目の数字のインデックス位置を含む。
[s...e]
の表記の場合は2つ目の数字のインデックス位置を含まない。
Pythonの lst[2:]
みたいに後ろを省略する書き方ができない。
[s,l]
の表記の場合はfromとlengthの指定になる。