複数の配列(リスト)を連結するには

関連

Scala

Seq++:++++: というメソッドを使う。または List であれば ::: というメソッドも使える。

def Seq[A]#++[B >: A](suffix: IterableOnce[B]): Seq[B]
def Seq[A]#:++[B >: A](suffix: IterableOnce[B]): Seq[B]
def Seq[A]#++:[B >: A](prefix: IterableOnce[B]): Seq[B]
def List[A]#:::[B >: A](prefix: List[B]): List[B]

val lst1 = List(1, 2, 3);
val lst2 = List(4, 5, 6);
val result = lst1 ::: lst2;
print(result); // => List(1, 2, 3, 4, 5, 6)

PHP

複数の配列を連結するにはarray_merge関数を使う。この関数は引数の配列を変更せずに連結した結果を返すのみである。

$a1 = array(1, 2, 3);
$a2 = array(4, 5, 6);
$result = array_merge($a1, $a2);

var_export($a1); echo "\n";
// =>
//    array (
//      0 => 1,
//      1 => 2,
//      2 => 3,
//    )
var_export($a2); echo "\n";
// =>
//    array (
//      0 => 4,
//      1 => 5,
//      2 => 6,
//    )
var_export($result); echo "\n";
// =>
//    array (
//      0 => 1,
//      1 => 2,
//      2 => 3,
//      3 => 4,
//      4 => 5,
//      5 => 6,
//    )

配列のキーが数字以外の場合は、それぞれの配列のキーを変更せずに上書きでマージしていくので、要素が追加されるとは限らない。
-> 連想配列をマージ

3つ以上の配列を連結したい場合も、array_merge に渡す引数にそれらの配列を並べるだけでよい。

$result = array_merge($a1, $a2, $a3);

array_merge 関数 | PHP Manual

Ruby

配列を+演算子でつなぐと連結できる。

p ["abc", "def"] + ["123", "456"] # => ["abc", "def", "123", "456"]

Array#+ | Ruby 2.1 リファレンスマニュアル

JavaScript

Array.prototype.concat は配列を連結した新しい配列を生成して返す。この関数は this も引数に渡した配列も変更しない。

var newArr = arr1.concat(arr2, arr3);

引数がない場合は結果として arr1 と同じ内容の新しい配列を生成するだけなので、配列のコピーの目的でも使える。

このサイトは個人メモの集合です。
スポンサーリンク