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

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

这可能是一个初学者的问题,但我已经阅读了更长时间的文档,我找不到任何解决方案。我想我可以为每个维度使用内爆,然后将这些字符串放在一起str_split来制作新的简单数组。但是,我永远不知道连接模式是否也在值中,所以在做完之后str_split我原来的价值观可能会崩溃。

有什么像combine($array1, $array2)多维数组内部的数组?


一只甜甜圈
浏览 867回答 3
3回答

慕码人2483693

使用array_walk_recursive<?php $aNonFlat&nbsp;=&nbsp;array( &nbsp;&nbsp;&nbsp;&nbsp;1, &nbsp;&nbsp;&nbsp;&nbsp;2, &nbsp;&nbsp;&nbsp;&nbsp;array( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9, &nbsp;&nbsp;&nbsp;&nbsp;), &nbsp;&nbsp;&nbsp;&nbsp;10, &nbsp;&nbsp;&nbsp;&nbsp;11);$objTmp&nbsp;=&nbsp;(object)&nbsp;array('aFlat'&nbsp;=>&nbsp;array());array_walk_recursive($aNonFlat,&nbsp;create_function('&$v,&nbsp;$k,&nbsp;&$t',&nbsp;'$t->aFlat[]&nbsp;=&nbsp;$v;'), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$objTmp);var_dump($objTmp->aFlat);/* array(11)&nbsp;{ &nbsp;&nbsp;[0]=> &nbsp;&nbsp;int(1) &nbsp;&nbsp;[1]=> &nbsp;&nbsp;int(2) &nbsp;&nbsp;[2]=> &nbsp;&nbsp;int(3) &nbsp;&nbsp;[3]=> &nbsp;&nbsp;int(4) &nbsp;&nbsp;[4]=> &nbsp;&nbsp;int(5) &nbsp;&nbsp;[5]=> &nbsp;&nbsp;int(6) &nbsp;&nbsp;[6]=> &nbsp;&nbsp;int(7) &nbsp;&nbsp;[7]=> &nbsp;&nbsp;int(8) &nbsp;&nbsp;[8]=> &nbsp;&nbsp;int(9) &nbsp;&nbsp;[9]=> &nbsp;&nbsp;int(10) &nbsp;&nbsp;[10]=> &nbsp;&nbsp;int(11) } */?>用PHP 5.5.9-1ubuntu4.24(CLI)测试

呼啦一阵风

这是一行,超级易用:$result&nbsp;=&nbsp;array();array_walk_recursive($original_array,function($v)&nbsp;use&nbsp;(&$result){&nbsp;$result[]&nbsp;=&nbsp;$v;&nbsp;});它非常容易理解,在匿名函数/闭包中。$v的价值$original_array.
打开App,查看更多内容
随时随地看视频慕课网APP