程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP函數array_merge,phparray_merge

PHP函數array_merge,phparray_merge

編輯:關於PHP編程

PHP函數array_merge,phparray_merge


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

定義:array_merge — 合並一個或多個數組

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

說明:

1. 將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面。

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

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

 

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

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

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

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


在php中array_merge是什

合並數組
1、如果這兩個數組中有相同的字符串鍵名:
<?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 )

說明,後者將替換前者。

2、如果這兩個數組中有相同的數值鍵名:
<?php
$book1 = array(linux服務器配置與管理,PHP程序設計);
$book2 = array(服務器配置與管理,PHP);
$result = array_merge($book1,$book2);
print_r($result);
?>
結果是:
Array ( [0] => linux服務器配置與管理 [1] => PHP程序設計 [2] => 服務器配置與管理 [3] => PHP )

---不知清楚沒
 

php中array_merge不可以加非數組類型變量,有什好方法可以解決?除了很瘸的empty

可以使用自定義函數

function array_add($str1,$str2) {
if ( !is_array($str1) ) {
return;
}
if ( is_array($str2) ) {
$result = array_merge($str1,$str2);
} else {
$result = array_push($str1,$str2);
}
return $result;
}
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved