php將二維陣列轉多個一維陣列的方法:1、使用array_reduce()函數來轉換;2、使用array_walk_recursive()函數來轉換;3、使用array_map()函數來轉換。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
PHP二維數組(或任一維數組)轉換成一維數組的方法
- array_reduce函數法
- array_walk_recursive函數法
- #array_map函數法
假設有下面一個二維數組:
$user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' => array('id' => 103, 'username' => 'a4'), '4' => array('id' => 104, 'username' => 'a5'), );
現在要轉換成一維數組,有兩種情況:
一種是將指定列轉換成一維數組,這在另一篇文章有總結:PHP提取多維數組指定一列的方法大全。
現在我們重點介紹第二種情況,就是把所有的值都轉換成一維數組,而且鍵值相同不會被覆寫,轉換後的一維數組是這樣的:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
主要有下面幾個方法。
1 array_reduce函數法
#用array_reduce()函數是較快捷的方法:
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array())
#因為 array_merge
函數會把相同字串鍵名的陣列覆寫合併,所以必須先用array_value
取出值後再合併。
如果第二維度是數字鍵名,如:
$user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), );
那麼直接這樣就可以了:
$result = array_reduce($user, 'array_merge', array())
2 array_walk_recursive函數法
用array_walk_recursive()函數很靈活,可以把任意維度的陣列轉換成一維陣列。
$result = []; array_walk_recursive($user, function($value) use (&$result) { array_push($result, $value); });
例如,下面這個多維數組:
$user4 = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array( 'd' => array(102, 'a3'), 'e' => array(103, 'a4'), ), );
用這個方法後就變成:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
3 array_map函數法
用array_map
和array_reduce
函數的方法類似,如下:
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
只是需要多宣告一個空的<span class="hljs-variable"> #$result</span>
陣列。
另外,也可以用array_walk
的方法,和<span class="hljs-keyword">foreach</span>
循環的方法,原理和上面一樣。
推薦學習:《PHP影片教學》
以上是php怎麼將二維數組轉為多個一維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),