在PHP中靈活使用foreach+list處理多維數組的方法
先拋出問題,有時候我們接收到的參數是多維數組,我們需要將他們轉成普通的數組,比如:
$arr = [ [1, 2, [3, 4]], [5, 6, [7, 8]], ];
我們需要的結果是元素1變成1,2,3,4,元素2變成5,6,7,8,這時候,我們就可以用foreach配合list來實現(xiàn),而且非常簡單:
foreach ($arr as list($a, $b, list($c, $d))) {
echo $a, ',', $b, ',', $c, ',', $d, PHP_EOL;
}
是不是非常的簡單。但是要注意哦,list拆解鍵值對形式的Hash數組時要指定鍵名,并且只有在7.1以后的版本才可以使用哦
$arr = [
["a" => 1, "b" => 2],
["a" => 3, "b" => 4],
];
foreach ($arr as list("a" => $a, "b" => $b)) {
echo $a, ',', $b, PHP_EOL;
}
foreach ($arr as ["a" => $a, "b" => $b]) {
echo $a, ',', $b, PHP_EOL;
}
注意:如果沒有寫鍵名,會輸出空而不會報錯,這是個BUG點,千萬要注意。
上述代碼中第二個寫法更簡單直觀,由此發(fā)現(xiàn)我們還可以這樣來拆解數組。并且指定鍵值了就不用在乎他們的順序了:
["b" => $b, "a" => $a] = $arr[0]; echo $a, ',', $b, PHP_EOL;
原來list()還有這樣的語法糖,果然還是要不斷的學習,一直使用卻從未深入了解過的方法竟然能有這么多的用處。不多說了,接著研究手冊中其他好玩的東西去咯!
到此這篇關于在PHP中靈活使用foreach+list處理多維數組的文章就介紹到這了,更多相關PHP使用foreach+list處理多維數組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PHP 設計模式系列之 specification規(guī)格模式
規(guī)格模式是組合模式的一種擴展,在框架性開發(fā)中使用較多(項目級開發(fā)很少使用),通過本文給大家介紹PHP 設計模式系列之 specification規(guī)格模式,對specification模式相關知識感興趣的朋友一起學習吧2016-01-01
Symfony2實現(xiàn)在controller中獲取url的方法
這篇文章主要介紹了Symfony2實現(xiàn)在controller中獲取url的方法,實例分析了Symfony獲取URL的常用方法與使用技巧,需要的朋友可以參考下2016-03-03

