最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

重新認識php array_merge函數(shù)

 更新時間:2014年08月31日 14:56:45   投稿:hebedich  
PHP中合并數(shù)組分成兩種情況:1.如果這兩個數(shù)組中有相同的字符串鍵名 2.如果這兩個數(shù)組中有相同的數(shù)值鍵名

重新認識php array_merge函數(shù)

今天因一個Bug重新審視了下array_merge()這個函數(shù)。

定義:array_merge — 合并一個或多個數(shù)組

規(guī)范:array array_merge(array $array1 [, array $...])

說明:

1. 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。

2. 如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。   

3. 如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。

這個函數(shù)在手冊中有詳盡示例,用途也很廣且實用。

今天遇到的一個問題是手冊中有警告的,只是此前沒注意到,導致了一個致命的錯誤。如下:

PHP >= 5.0 版本,array_merge() 只接受array類型的參數(shù)。不過可以用強制轉換來合并其它類型。

對于是foreach等代碼產(chǎn)生的數(shù)組變量要注意了,要么初始化該變量為空數(shù)組,要么就在合并時做個強制轉換。不然,會有大苦頭吃。因此,保持一個初始化變量的習慣也是個好事。

PHP中合并數(shù)組分成兩種情況

1、如果這兩個數(shù)組中有相同的字符串鍵名:

<?php
 
 $book1 = array('linux'=>'linux服務器配置與管理','php'=>'PHP程序設計');
 $book2 = array('linux'=>'服務器配置與管理','jsp'=>'PHP'); 
 
 $result = array_merge($book1,$book2);
 print_r($result);
?>

輸出為:

Array ( [linux] => 服務器配置與管理 [php] => PHP程序設計 [jsp] => PHP )

 
說明,后者將替換前者。但如果使用的是array_merge_recursive()則可保留,并作一個子數(shù)組存在。如:
 

<?php
 
 $book1 = array('linux'=>'linux服務器配置與管理','php'=>'PHP程序設計');
 $book2 = array('linux'=>'服務器配置與管理','jsp'=>'PHP'); 
 
 $result = array_merge_recursive($book1,$book2);
 print_r($result);
?>

輸出為:

Array ( [linux] => Array ( [0] => linux服務器配置與管理 [1] => 服務器配置與管理 ) [php] => PHP程序設計 [jsp] => PHP )

 
2、如果這兩個數(shù)組中有相同的數(shù)值鍵名:

<?php
 
 $book1 = array('linux服務器配置與管理','PHP程序設計');
 $book2 = array('服務器配置與管理','PHP'); 
 
 $result = array_merge($book1,$book2);
 print_r($result);
?>

結果是:

Array ( [0] => linux服務器配置與管理 [1] => PHP程序設計 [2] => 服務器配置與管理 [3] => PHP )

 
這時,如果數(shù)組中包含相同的數(shù)字鍵名,則后面的不會覆蓋前面的值,而是后面的鍵值按順序依次增加,附在后邊。明白了嗎,^_^

相關文章

最新評論

镇原县| 色达县| 扎兰屯市| 葵青区| 张家界市| 财经| 黑水县| 纳雍县| 札达县| 波密县| 淳化县| 洛浦县| 虹口区| 新巴尔虎右旗| 柳州市| 读书| 白山市| 竹北市| 郁南县| 罗田县| 清丰县| 铜陵市| 凤山市| 新干县| 绥芬河市| 乌兰县| 疏勒县| 通州市| 梓潼县| 文登市| 左云县| 金堂县| 肥乡县| 漠河县| 弋阳县| 密云县| 腾冲县| 昌吉市| 阿勒泰市| 新乡市| 噶尔县|