可能重复:
Turning multidimensional array into one-dimensional array
我有这种数组
Array
(
[0] => Array
(
[0] => 88868
)
[1] => Array
(
[0] => 88867
)
[2] => Array
(
[0] => 88869
)
[3] => Array
(
[0] => 88870
)
)
我需要将其转换为一维数组。我怎么能这样做?
例如像这样......
Array
(
[0] => 88868
[1] => 88867
[2] => 88869
[3] => 88870
)
任何内置的PHP功能都可用于此阵列转换吗?
答案 0 :(得分:91)
对于您的有限用例,请执行此操作:
$oneDimensionalArray = array_map('current', $twoDimensionalArray);
当子数组有许多条目时,这可以更加通用:
$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);
答案 1 :(得分:14)
PHP array_merge
Docs函数可以展平您的数组:
$flat = call_user_func_array('array_merge', $array);
如果原始数组的深度高于2个级别,则PHP中的SPL可以使用RecursiveArrayIterator
来展平它:
$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);
请参阅: Turning multidimensional array into one-dimensional array
答案 2 :(得分:2)
尝试:
$new_array = array();
foreach($big_array as $array)
{
foreach($array as $val)
{
array_push($new_array, $val);
}
}
print_r($new_array);
答案 3 :(得分:2)
$oneDim = array();
foreach($twoDim as $i) {
$oneDim[] = $i[0];
}
答案 4 :(得分:1)
烨。
$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];
答案 5 :(得分:0)
虽然 the page that was previously used to close this page 上的一些答案确实有适合这个问题的答案。由于输入数据结构的原因,针对此特定问题的技术不属于其他页面。
这里的示例数据结构是一个单元素索引数组。
var_export(array_column($array, 0));
就是这个问题所需要的全部内容。