繁体   English   中英

如何更改php数组的结构

[英]How to change the structure of an php array

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

该数组是其中包含数组的数组,但是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
    )

您可以如下使用。

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];

您可以在循环内使用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
)

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

<?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
)
*/
?>

这是扁平化的相当便宜的代码明智方式

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

问题是,如果数组的第一级不是所有数组,它就会崩溃

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM