array_walk版一號代碼:$res=array();array_walk($arr,function($item,$key)use(&$res){$res=array_merge($res,$item);});array_walk_recursive版二號代碼:$res=array();array_walk_recursive($arr,function($item,$key)use(&$res){$res[]=$item;});優(yōu)美的寫法需要PHP版本的支持,如果不支持的話就把匿名函數(shù)和use改成普通函數(shù)和global的形式就好了。補充答案:foreach循環(huán)普通版三號代碼:$res=array();foreach($arras$item){$res=array_merge($res,$item);}doubleforeach嵌套循環(huán)普通版四號代碼:見@thbourlove的答案。既然題主強調(diào)了一下時間的話那我就認(rèn)真做一個測評好了,為了增加可比性我又寫了一個普通版用循環(huán)的第三版作為對比代碼,通過測試得到四組代碼在不同數(shù)組長度的情況下所消耗的時間的一個表:array_walkarray_walk_recursiveforeachdoubleforeach5000.120.0030.0670.0031000.450.0060.3310.00315001.70.0051.5230.00320003.380.0052.0920.00325006.160.0084.1260.004300010.150.0106.2580.005*注1:表格左側(cè)為數(shù)組的長度,默認(rèn)算的是一級數(shù)組,例如題目中的數(shù)組長度為5。每個二級數(shù)組的長度統(tǒng)一為題目示例中的2。*注2:表格中的數(shù)據(jù)默認(rèn)單位為秒*注3:本來其實測試數(shù)據(jù)為100000長度的數(shù)組的,結(jié)果array_walk花了204s,我就放棄那么長了。*注4:doubleforeach的代碼參見@thbourlove的答案,另外此算法的運算時間由于之前三者比較的數(shù)據(jù)已經(jīng)不存在了,所以我重新找了一組規(guī)格相同的數(shù)據(jù)和第二種算法做了同期測試,并根據(jù)兩組數(shù)據(jù)之間的關(guān)系得到了表格現(xiàn)在的數(shù)據(jù)。通過以上數(shù)據(jù)可以得出,性能方面的話還是@thbourlove的嵌套循環(huán)是最高的,不過個人是代碼美觀控,所以還是比較偏愛第二種。通過以上數(shù)據(jù)可以得出三種方法中array_walk_recursive方法無疑是最快的。array_walk_recursive的低版本兼容寫法我在這里補充一下:$res=array();functionmerge($item,$key){global$res;$res[]=$item}array_walk_recursive($arr,'merge');至于修改后的代碼的效率測試我就不在這里多做了,相比最終得到的結(jié)果應(yīng)該也是一樣的。