您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么在PHP中將二維數(shù)組轉(zhuǎn)換成一維數(shù)組,億速云小編覺得不錯,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨億速云小編來看看吧!
php是一個嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。
假設(shè)有下面一個二維數(shù)組:
$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'), );
現(xiàn)在要轉(zhuǎn)換成一維數(shù)組,有兩種情況:
一種是將指定列轉(zhuǎn)換成一維數(shù)組,這在另一篇文章有總結(jié):PHP提取多維數(shù)組指定一列的方法總結(jié)。
現(xiàn)在我們重點(diǎn)講第二種情況,就是把所有的值都轉(zhuǎn)換成一維數(shù)組,而且鍵值相同不會被覆蓋,轉(zhuǎn)換后的一維數(shù)組是這樣的:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
主要有下面幾個方法。
1 array_reduce函數(shù)法
用array_reduce()函數(shù)是較為快捷的方法:
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array())
因?yàn)閍rray_merge函數(shù)會把相同字符串鍵名的數(shù)組覆蓋合并,所以必須先用array_value取出值后再合并。
如果第二維是數(shù)字鍵名,如:
$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函數(shù)法
用array_walk_recursive()函數(shù)就非常靈活,可以把任意維度的數(shù)組轉(zhuǎn)換成一維數(shù)組。
$result = []; array_walk_recursive($user, function($value) use (&$result) { array_push($result, $value); });
例如,下面這個多維數(shù)組:
$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函數(shù)法
用array_map和array_reduce函數(shù)的方法類似,如下:
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
只是需要多聲明一個空的$result數(shù)組。
另外,也可以用array_walk的方法,和foreach循環(huán)的方法,原理和上面一樣。
以上就是億速云小編為大家收集整理的怎么在PHP中將二維數(shù)組轉(zhuǎn)換成一維數(shù)組,如何覺得億速云網(wǎng)站的內(nèi)容還不錯,歡迎將億速云網(wǎng)站推薦給身邊好友。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。