为了账号安全,请及时绑定邮箱和手机立即绑定

如何在PHP中将多维数组“扁平化”成简单数组?

如何在PHP中将多维数组“扁平化”成简单数组?

PHP
一只甜甜圈 2019-06-18 15:20:31
如何在PHP中将多维数组“扁平化”成简单数组?这可能是一个初学者的问题,但我已经阅读了更长时间的文档,我找不到任何解决方案。我想我可以为每个维度使用内爆,然后将这些字符串放在一起str_split来制作新的简单数组。但是,我永远不知道连接模式是否也在值中,所以在做完之后str_split我原来的价值观可能会崩溃。有什么像combine($array1, $array2)多维数组内部的数组?
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

使用array_walk_recursive

<?php

$aNonFlat = array(
    1,
    2,
    array(
        3,
        4,
        5,
        array(
            6,
            7
        ),
        8,
        9,
    ),
    10,
    11);$objTmp = (object) array('aFlat' => array());array_walk_recursive($aNonFlat, create_function('&$v, $k, &$t', '$t->aFlat[] = $v;'),
     $objTmp);var_dump($objTmp->aFlat);/*
array(11) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
  [6]=>
  int(7)
  [7]=>
  int(8)
  [8]=>
  int(9)
  [9]=>
  int(10)
  [10]=>
  int(11)
}
*/?>

用PHP 5.5.9-1ubuntu4.24(CLI)测试


查看完整回答
反对 回复 2019-06-18
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

这是一行,超级易用:

$result = array();array_walk_recursive($original_array,function($v) use (&$result){ $result[] = $v; });

它非常容易理解,在匿名函数/闭包中。$v的价值$original_array.


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信