1. 程式人生 > >php array_merge和陣列相加的區別

php array_merge和陣列相加的區別

兩個資料合併可以用array_merge函式也可以用+運算子進行合併操作 

$arr1 = array("a"=>"PHP","b"=>"java","python");

$arr2 = array("c" =>"ruby","d" => "c++","go","a"=> "swift");

$arr3 = array_merge($arr1,$arr);

$arr4 = $arr1 + $arr2;

但這兩個方法合併陣列還是有不小的區別的。

array_merge對數值鍵不會覆蓋,但會對字元鍵進行覆蓋,如果兩個陣列字元鍵相同,則先出現的覆蓋後出現的。對數字鍵的值會從0開始重新排列

var_dump($arr3)

列印結果:

array(6) { ["a"]=> string(5) "swift" ["b"]=> string(4) "java" [0]=> string(6) "python" ["c"]=> string(4) "ruby" ["d"]=> string(3) "c++" [1]=> string(2) "go" }

可以看到同字元鍵a的值值保留了siwft,PHP被丟棄,a鍵保持不變,python和go原本的數字鍵都是2,現在重新排成了0和1

而用加號進行數組合並則無論是數字鍵還是字元鍵,只要相同首先出現的將被保留,後出現的將被丟棄,且數字鍵會被重新排序

var_dump($arr4)

列印結果:

array(5) { ["a"]=> string(3) "PHP" ["b"]=> string(4) "java" [0]=> string(6) "python" ["c"]=> string(4) "ruby" ["d"]=> string(3) "c++" }

相關推薦

php array_merge陣列相加區別

兩個資料合併可以用array_merge函式也可以用+運算子進行合併操作  $arr1 = array("a"=>"PHP","b"=>"java","python"); $arr2 = array("c" =>"ruby","d" => "c++"

php陣列求和array_merge+號 的區別

<?php $d1=array( '2015-6-1'=>'0', '2015-6-2'=>'0', '2015-6-3'=>'0', '2015-6-4'=>'0', '2015-6-5'=>'100', '2015-6-6

PHP函式之array_merge()array()+array()區別

在PHP中可以使用array_merge函式和兩個陣列相加array+array的方式進行數組合並,但兩者效果並不相同,下面為大家介紹兩者具體的使用區別. 區別如下:  當下標為數值時,array_merge()不會覆蓋掉原來的值,但array+array合併陣列則會

PHP——echoprint的區別

完全 功能 括號 所有 朋友 表達式 成功 ron als 這篇文章主要介紹了PHP中echo和print的區別,針對二者使用中常見的用法區別進行了較為深入的總結與分析,需要的朋友可以參考下 一般來說,PHP中動態輸出HTML內容,是通過print 和 echo 語句來實現

array_mergearray的區別分析

一個 格式 pytho int 比較 和數 AS array ava 記得之前發現很多朋友用過array+array的方式,今天索性再聊下這樣的話題:如何獲取字符鍵名相同值不同的兩個數組值集合?讓我認真比較了下PHP中array_merge和array相加的區別 首先來

利用動態規劃演算法解01揹包問題->二維陣列傳參->cpp記憶體管理->堆棧的區別->常見的記憶體錯誤及其對策->指標陣列區別->32位系統是4G

1、利用動態規劃演算法解01揹包問題 https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html 兩層for迴圈,依次考察當前石塊是否能放入揹包。如果能,則考察放入該石塊是否會得到當前揹包尺寸的最優解。 // 01 knap

PHP中.//的使用區別,相對路徑巢狀包含問題,專案中使用絕對路徑

./:表示同級目錄(當前檔案所屬資料夾),每個資料夾下都有“.”檔案,代表當前目錄 ../:表示上級目錄(當前檔案所屬資料夾的上級資料夾),每個資料夾下都有“..”檔案,表示上級目錄 什麼都沒有:就是表示同級目錄。區別./在於./會自動匹配任意目錄下的.資料夾,被其他檔案包含之後會

集合陣列區別

A:長度區別             陣列長度固定             集合長度可變B:內容區別  &nb

C指標陣列區別

對於指標和陣列的問題已經困擾我許久。今天在打程式碼的時候,用到了很多指標和陣列的問題。 當初在C與指標中看到,陣列可以跟操作指標一樣。 例如: char buffer[1024]; char *p; //一個指向字串的指標 p = buffer; // buffer 等價於一

java,python 中的list陣列區別

java    陣列 列表 備註 結構 線性結構 線性結構 儲存位置 記憶體中的棧區 記憶體中的堆區 儲存方式 靜態連續

js中 json字串 json物件 以及 物件陣列區別

json 字串轉json 物件 轉換後就可以取出物件中的值 json字串: var jsonString = '{"bar":"property","baz":3}' ; json物件: var jsObject =

指標陣列區別

當我們宣告一個數組時,其陣列的名字也相當與一個指標,該指標指向陣列的第一個元素。可以用指標來訪問陣列。 通過以下例子來了解陣列指標的區別。 執行以下程式碼,請問輸出的結果是什麼? 答案分別是:20,4,4 1.data1是一個數組,sizeof(data1)是求陣

PHP strlenmb_strlen的區別

先看案例: echo mb_internal_encoding(); echo "<br/>"; $str="D.C is 中國人"; // echo strlen($str); echo "<br>"; echo mb_strlen($str,"u

php://input$_POST的區別

  (1)例子:php://input      前臺程式碼如下           <form action="post.php" method="post">  &nb

JAVA中StringBuffer陣列區別

共同點: 兩者都可以看作是一種容器,都可以存放其他的資料。 不同點: StringBuffer最終會是一個字串型別 陣列可以存放多種型別的資料(每個陣列的型別必須是一樣的)

C++指標陣列區別(不能混用的情況)

通常情況下,C++中指標和陣列是可以混用的,但是,在編寫字元陣列的全排列的時候,混用卻出了問題,因此,今天特地mark一下,以備日後查詢  這裡整理的,不包括用new開闢的動態陣列 1.陣列一旦宣告,我們就不能再給它賦值,但是我們可以給指標賦值 如下: 5、6行都錯,因為陣

【C語言】指標陣列區別聯絡

1.指標    int  *  p     ( 這裡定義一個指標      p為指標變數     指向的是某一個地址)                2.陣列      int  arr [10]         這裡定義了10個int 型別的資料  可以通過arr[0] 

Java中集合陣列區別

區別:      1)陣列大小固定,儲存資料型別單一(基本型別/引用型別);      2)集合大小可動態擴充套件,可儲存各種型別的資料; 聯絡:      1)陣列轉集合: Arrays.as

php inluderequire的區別

1、均是語言結構,不是函式,不用括號,如 require ‘a.php’; 2、如果要引入的檔案不存在,include E_WARNING 繼續執行, require fatal error (E_COMPILE_ERROR) 程式中斷 3、沒有什麼預載入、預處理的區別!!

JS的物件陣列區別使用

JS宣告物件或陣列 JS物件:{ } JS陣列:[ ] 1. 物件 var b={    m:'123',    n:'abc' } alert(b.m); alert(b.n); 2.一維陣列 var a=[1,2,3] alert(a[1]); alert(a.length);3.二維陣列 var ar