国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP合并數組的2種方法小結

2024-05-04 23:52:50
字體:
來源:轉載
供稿:網友

前言

在此前合并數組我一直用的是array_merge()這個函數,但最近我在換工作的時候遇到一道合并數組的面試題,我當時想的是將兩個數組先轉化為字符串,合并后再轉化為數組輸出,面試官說這個思路不太對,完了bulabula講了一下數組基礎的東西,然后確實是因為經驗問題,或者是代碼寫太少,想不到還有什么方法,今天我百度了一下,原來還有‘+'號,

array_merge_recursive() ,也是可以用來合并數組的,根據我的記憶,我把那道題寫出來看一下:

$a = array('color'=>'red',5,6); $b = array('color'=>'blue','type'=>'fruit',6,7); $arr = array_merge($a,$b); var_dump($arr);
array (size=6) 'color' => string 'blue' (length=4) 0 => int 5 1 => int 6 'type' => string 'fruit' (length=5) 2 => int 6 3 => int 7

要求是在不使用array_merge()的情況的得到相同的效果;

array_merge()合并數組會把前一個數組中關聯形式數組的鍵值相同的覆蓋,索引形式的則按鍵值順序合并在一起)

1.先用array_merge_recursive()函數來合并一下:

$a = array('color'=>'red',5,6);$b = array('color'=>'blue','type'=>'fruit',6,7);$arr = array_merge_recursive($a,$b);var_dump($arr);

輸出結果:

array (size=6) 'color' =>  array (size=2)  0 => string 'red' (length=3)  1 => string 'blue' (length=4) 0 => int 5 1 => int 6 'type' => string 'fruit' (length=5) 2 => int 6 3 => int 7

從結果可以看出array_merge_recursive()函數會把鍵值相同的值以一個新的關聯數組的形式返回,并以這個鍵值作為二維數組的鍵值,其他索引形式則不會受影響。

比起array_merge()的話就不會出現后面的數組鍵和前一個相同就把前一個的值覆蓋的情況了。

2.再看下‘+'號合并數組的情況:

$a = array('color'=>'red',5,6);$b = array('color'=>'blue','type'=>'fruit',6,7);$arr = $a+$b;var_dump($arr);

輸出結果:

array (size=4) 'color' => string 'red' (length=3) 0 => int 5 1 => int 6 'type' => string 'fruit' (length=5)

從這個結果可以看出,使用‘+'號合并數組,是前面覆蓋后面的,和array_merge()相反,而且它比array_merge()更狠,如果以索引形式出現的數組的內容,合并后如果鍵值相同也會覆蓋掉!

總結

好了,以上就是這篇文章的全部內容了,是我個人的一些總結,本人入行不久,火候欠佳,如有總結不到位地方請各位高手批評指正,一定虛心接納!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 化德县| 海晏县| 平罗县| 潼南县| 繁昌县| 河曲县| 常熟市| 岳池县| 剑阁县| 台中市| 兴山县| 青龙| 镇远县| 永昌县| 汽车| 西充县| 万安县| 阿巴嘎旗| 桦南县| 宁陕县| 天长市| 体育| 灵璧县| 陇川县| 报价| 青铜峡市| 集安市| 女性| 泾阳县| 乌鲁木齐市| 澄江县| 浦城县| 鹤峰县| 长沙县| 阜平县| 岑巩县| 泾源县| 安西县| 沂源县| 抚州市| 岱山县|