如何使用SQL将二维数组(2D Array)转换为一维数组(1D Array)?
如何将二维整数数组扁平化为一维数组?
没问题,我来帮你搞定这个二维数组转一维的需求!其实核心就是**扁平化(flatten)**操作,不同编程语言里都有现成的方法或者简单的实现方式,我给你列几个常用场景的例子:
Python
Python里实现这个需求的方式特别灵活,选你顺手的来就行:
- 最直观的列表推导式:
two_d_array = [[0, 0, 0], [0, 0, 0]] one_d_array = [num for sublist in two_d_array for num in sublist] # 输出结果:[0, 0, 0, 0, 0, 0]
- 用
itertools工具类简化代码:
import itertools two_d_array = [[0, 0, 0], [0, 0, 0]] one_d_array = list(itertools.chain.from_iterable(two_d_array))
- 如果是用numpy处理数值数组,直接用内置的扁平化方法:
import numpy as np two_d_np_array = np.array([[0, 0, 0], [0, 0, 0]]) one_d_np_array = two_d_np_array.flatten() # 返回数组副本 # 或者用 ravel(),返回原数组的视图(更省内存) one_d_np_array = two_d_np_array.ravel()
JavaScript
前端场景下的实现也很简单:
- ES6+ 直接用
flat()方法,一步到位:
const twoDArray = [[0, 0, 0], [0, 0, 0]]; const oneDArray = twoDArray.flat(); // 输出结果:[0, 0, 0, 0, 0, 0] // 要是遇到更深层的嵌套数组,还可以传参数比如 flat(Infinity) 来全部扁平化
- 兼容性更好的
reduce写法:
const twoDArray = [[0, 0, 0], [0, 0, 0]]; const oneDArray = twoDArray.reduce((result, currentList) => result.concat(currentList), []);
PHP
后端PHP场景下的实现方案:
- 用展开运算符配合
array_merge,简洁高效:
$twoDArray = [[0, 0, 0], [0, 0, 0]]; $oneDArray = array_merge(...$twoDArray); // 输出结果:[0, 0, 0, 0, 0, 0]
- 循环遍历的写法(适合需要额外处理每个元素的场景):
$twoDArray = [[0, 0, 0], [0, 0, 0]]; $oneDArray = []; foreach ($twoDArray as $subList) { $oneDArray = array_merge($oneDArray, $subList); }
如果你的场景是其他编程语言,或者数组有特殊的嵌套情况(比如不是严格的二维数组),随时说,我再给你调整方案~
内容的提问来源于stack exchange,提问作者gionalim
相关产品推荐
相关产品推荐

