《PHP應(yīng)用:重新認(rèn)識(shí)php array_merge函數(shù)》要點(diǎn):
本文介紹了PHP應(yīng)用:重新認(rèn)識(shí)php array_merge函數(shù),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
重新認(rèn)識(shí)php array_merge函數(shù)PHP編程
今天因一個(gè)Bug重新審視了下array_merge()這個(gè)函數(shù).PHP編程
定義:array_merge ― 合并一個(gè)或多個(gè)數(shù)組PHP編程
規(guī)范:array array_merge(array $array1 [, array $...])PHP編程
說明:PHP編程
1. 將一個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面.PHP編程
2. 如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值.然而,如果數(shù)組包括數(shù)字鍵名,后面的值將不會(huì)覆蓋原來的值,而是附加到后面.???PHP編程
3. 如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引.PHP編程
這個(gè)函數(shù)在手冊(cè)中有詳盡示例,用途也很廣且實(shí)用.PHP編程
今天遇到的一個(gè)問題是手冊(cè)中有警告的,只是此前沒注意到,導(dǎo)致了一個(gè)致命的錯(cuò)誤.如下:PHP編程
PHP >= 5.0 版本,array_merge() 只接受array類型的參數(shù).不過可以用強(qiáng)制轉(zhuǎn)換來合并其它類型.PHP編程
對(duì)于是foreach等代碼產(chǎn)生的數(shù)組變量要注意了,要么初始化該變量為空數(shù)組,要么就在合并時(shí)做個(gè)強(qiáng)制轉(zhuǎn)換.不然,會(huì)有大苦頭吃.因此,保持一個(gè)初始化變量的習(xí)慣也是個(gè)好事.PHP編程
PHP中合并數(shù)組分成兩種情況
PHP編程
1、如果這兩個(gè)數(shù)組中有相同的字符串鍵名:
PHP編程
<?php $book1 = array('linux'=>'linux服務(wù)器配置與管理','php'=>'PHP程序設(shè)計(jì)'); $book2 = array('linux'=>'服務(wù)器配置與管理','jsp'=>'PHP'); $result = array_merge($book1,$book2); print_r($result); ?>
輸出為:
PHP編程
Array ( [linux] => 服務(wù)器配置與管理 [php] => PHP程序設(shè)計(jì) [jsp] => PHP )
?
說明,后者將替換前者.但如果使用的是array_merge_recursive()則可保留,并作一個(gè)子數(shù)組存在.如:
?
PHP編程
<?php $book1 = array('linux'=>'linux服務(wù)器配置與管理','php'=>'PHP程序設(shè)計(jì)'); $book2 = array('linux'=>'服務(wù)器配置與管理','jsp'=>'PHP'); $result = array_merge_recursive($book1,$book2); print_r($result); ?>
輸出為:
PHP編程
Array ( [linux] => Array ( [0] => linux服務(wù)器配置與管理 [1] => 服務(wù)器配置與管理 ) [php] => PHP程序設(shè)計(jì) [jsp] => PHP )
?
2、如果這兩個(gè)數(shù)組中有相同的數(shù)值鍵名:
PHP編程
<?php $book1 = array('linux服務(wù)器配置與管理','PHP程序設(shè)計(jì)'); $book2 = array('服務(wù)器配置與管理','PHP'); $result = array_merge($book1,$book2); print_r($result); ?>
結(jié)果是:
PHP編程
Array ( [0] => linux服務(wù)器配置與管理 [1] => PHP程序設(shè)計(jì) [2] => 服務(wù)器配置與管理 [3] => PHP )
?
這時(shí),如果數(shù)組中包括相同的數(shù)字鍵名,則后面的不會(huì)覆蓋前面的值,而是后面的鍵值按順序依次增加,附在后邊.明白了嗎,^_^PHP編程
《PHP應(yīng)用:重新認(rèn)識(shí)php array_merge函數(shù)》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP應(yīng)用:重新認(rèn)識(shí)php array_merge函數(shù)》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14771.html