如何更改php数组的结构

时间:2018-01-24 11:05:56

标签: php arrays

我有一个数组,但结构不好,所以我想让它改变。

数组是一个包含数组的数组,但是1总是空的,所以我不需要这个数组,因此不需要多级数组。

当前数组

array(

    [0] => array( 
        [0] => some value
        [1] => some value
    ),
    [1] => array( empty so this one must be removed )

)

我想要它的方式

array( 
        [0] => some value
        [1] => some value
    )

4 个答案:

答案 0 :(得分:2)

您可以使用以下内容。

array_reduce($array, 'array_merge', array());

例如:

$a = array(array(1, 2, 3), array(4, 5, 6));
$result = array_reduce($a, 'array_merge', array());

结果:

array[1, 2, 3, 4, 5, 6];

答案 1 :(得分:1)

您可以在循环中使用array_merge。像 -

这样的东西
$array = [
[1, 2],
[],
[4]
];
$temp = [];
foreach($array as $a) {
  $temp = array_merge($temp, $a);
}
print_r($temp);

<强>输出

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
)

答案 2 :(得分:0)

只需循环遍历数组并添加非空数组元素,如下所述(不使用内置函数)

<?php
$array = [[1, 2], [], [4]];
$temp = [];
foreach($array as $a) {
   if(!empty($a)) {
      foreach($a as $b)
      $temp[] = $b;
   }
}

echo "<pre>";
print_r($temp);
/* result
Array
(
    [0] => 1
    [1] => 2
    [2] => 4
)
*/
?>

答案 3 :(得分:0)

这是一种相当便宜的代码划分方式

$array = [[1, 2], []];
$flat = array_merge(...$array);

问题是,如果数组的第一级不是所有数组,那么它就会落空