Kotlin-连接多维数组的值

时间:2019-05-17 20:20:46

标签: arrays kotlin

我对Kotlin中的多维数组有疑问。 如何以一般方式获得以下结果:

$factory->define(App\Models\Boopie::class, function (Faker $faker) {
    return [
        'thingOne' => 'red shirt',
        'thingTwo' => 'blue shirt'
    ];
});

$factory->state(App\Models\Boopie::class, 'usiFlavored', function (Faker $faker) {
    return [
        'thingOne' => 'blue shirt',
        'thingTwo' => 'red shirt'
    ];
});

通过将相同大小的数组中的array1,array2,array3的值(在列和行上)连接起来得到的结果:

val array1 = arrayOf(
                arrayOf(1, 2, 3, 4),
                arrayOf(5, 6, 7, 8),
                arrayOf(9, 10, 11, 12)
             )

val array2 = arrayOf(
                arrayOf(11, 12, 13, 14),
                arrayOf(15, 16, 17, 18),
                arrayOf(19, 20, 21, 22)
             )

val array3 = arrayOf(
                arrayOf(21, 22, 23, 24),
                arrayOf(25, 26, 27, 28),
                arrayOf(29, 30, 31, 32)
             )

....

result[0][0] = [array1[0][0], array2[0][0], array3[0][0]]
result[0][1] = [array1[0][1], array2[0][1], array3[0][1]]
result[2][0] = [array1[2][0], array2[2][0], array3[2][0]]

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以执行此操作。请注意,这假定所有数组和子数组的大小都相同。

+-----+---+
|value| v2|
+-----+---+
|    0|  0|
|    1|  2|
|    2|  4|
|    3|  6|
|    4|  8|
|    5| 10|
|    6| 12|
|    7| 14|
|    8| 16|
|    9| 18|
+-----+---+

答案 1 :(得分:0)

您可以使用flatten()

val result = arrayOf(array1, array2, array3).flatten().toTypedArray()

由于flatten返回了一个列表,因此您可以调用toTypedArray()以数组形式获取结果。这是更惯用的方式。