溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中array_merge與array有什么不同

發(fā)布時(shí)間:2021-01-13 15:18:45 來源:億速云 閱讀:126 作者:Leah 欄目:開發(fā)技術(shù)

PHP中array_merge與array有什么不同?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

首先來看看鍵名是string,兩者區(qū)別:

復(fù)制代碼 代碼如下:


<?php
$arr1 = array('a'=>'PHP');
$arr2 = array('a'=>'JAVA');
//如果鍵名為字符,且鍵名相同,array_merge()后面數(shù)組元素值會(huì)覆蓋前面數(shù)組元素值
print_r(array_merge($arr1,$arr2)); //Array ( [a] => JAVA )
//如果鍵名為字符,且鍵名相同,數(shù)組相加會(huì)將最先出現(xiàn)的值作為結(jié)果
print_r($arr1+$arr2); //Array ( [a] => PHP )
?>


如果鍵名是數(shù)字,兩者區(qū)別:

復(fù)制代碼 代碼如下:


<?php
$arr1 = array("C","PHP");
$arr2 = array("JAVA","PHP");
//如果鍵名為數(shù)字,array_merge()不會(huì)進(jìn)行覆蓋
print_r(array_merge($arr1,$arr2));//Array ( [0] => C [1] => PHP [2] => JAVA [3] => PHP )
//如果鍵名為數(shù)組,數(shù)組相加會(huì)將最先出現(xiàn)的值作為結(jié)果,后面鍵名相同的會(huì)被拋棄
print_r($arr1+$arr2);//Array ( [0] => C [1] => PHP )
?>


特別要注意。關(guān)于“array_merge和數(shù)組相加的區(qū)別”上面已經(jīng)闡述的很清楚了,回到我最初的問題“如何最有效的獲取字符鍵名相同值不同的兩個(gè)數(shù)組值集合呢”,不會(huì)這要對(duì)每個(gè)數(shù)組遍歷吧,PHP中還有一個(gè)函數(shù),獲取你不常用:array_merge_recursive — 遞歸地合并一個(gè)或多個(gè)數(shù)組,如果輸入的數(shù)組中有相同的字符串鍵名,則這些值會(huì)被合并到一個(gè)數(shù)組中去。如下例:

復(fù)制代碼 代碼如下:


<?php
$arr1 = array("a"=>"php","c");
$arr2 = array("a"=>"java","c","ruby");
print_r(array_merge_recursive($arr1, $arr2));
?>


結(jié)果如下:
Array
(
    [a] => Array
        (
            [0] => php
            [1] => java
        )
    [0] => c
    [1] => c
    [2] => ruby
)
這樣,就可以獲取多個(gè)數(shù)組中鍵名相同的元素值集合了。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI