php 資料合併,PHP三種陣列合併方式區別示例

2021-10-25 20:36:07 字數 2495 閱讀 7075

一、寫在前面

目前工作中接觸到的php陣列合併方式主要有三種:

1、+操作符

2、array_merge()

3、array_merge_recursive()

它們的區別主要體現在對於相同鍵名(數字鍵名、字串鍵名)的處理方式,下面本文將以兩個實際例子來體現~

二、相同字串鍵

$arrfirst = [

"first_key" => 1,

"second_key" => 1,

"third_key" => 1,

$arrsecond = [

"first_key" => 2,

"second_key" => 2,

"fourth_key" => 2,

//對於重複的字串鍵,array_merge後,後面陣列的鍵值會覆蓋前面的

echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrfirst, $arrsecond), true));

//對於重複的字串鍵,+操作後,前面陣列的鍵值會覆蓋後面的

echo sprintf("\narray + result:\n%s", print_r($arrfirst + $arrsecond, true));

//對於重複的字串鍵,array_merge_recursive後,相同鍵名的鍵值會被合併到同一陣列中(會遞迴)

echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrfirst, $arrsecond), true));

執行結果:

三、相同數字鍵

$arrfirst = [

111 => "first",

222 => "first",

"first" //會指定預設的數字鍵223

$arrsecond = [

111 => "second",

333 => "second",

"second" //會指定預設的數字鍵334

//對於重複的數字鍵,+操作後,前面陣列的鍵值會覆蓋後面的,保留之前數字鍵

echo sprintf("\narray + result:\n%s", print_r($arrfirst + $arrsecond, true));

//對於重複的數字鍵,array_merge後,重排數字鍵,不會覆蓋

echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrfirst, $arrsecond), true));

//對於重複的數字鍵,array_merge_recursive後,重排數字鍵,不會覆蓋

echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrfirst, $arrsecond), true));

執行結果:

四、附:php陣列基礎概述

一、key

1、key只能為integer或string,可同時存在

2、包含合法整型值的字串key會被轉化為整型儲存,如:'6'的key會被轉化為6儲存

3、布林值key會被轉化為整型儲存,true會被轉化為1儲存,false會被轉化為0儲存

4、null會被轉化為空串儲存

5、如果多個key值被轉化後為相同的值,則只使用最後乙個,前面的被覆蓋,如:乙個陣列中依次定義了'1'、true、1的key,則最後只會儲存key為1的value,之前的值都被覆蓋

6、如果未指定key,則會被自動設定為之前用過的最大的整型key+1,最小為0

二、value

1、可以為php任意型別(字串、整形、浮點型、布林型、物件、陣列、null、資源型別)

三、其他型別轉化為陣列型別

1、integer、string、float、boolean、resource型別轉化為陣列型別時,會被自動分配key為0,value為其原值

2、object型別轉化為陣列型別時,成員變數名會作為陣列key,私有屬性的key會加上類名字首,保護屬性的key會加上'*'字首

3、null會被轉化為空陣列

四、foreach

1、兩種形式,foreach($arr as $key => $value)與foreach($arr as

$value),其中$value是值傳遞,使用&$value是引用傳遞

2、遍歷依賴陣列內部指標

3、遍歷結束後,$value會被保留,為防止在多次foreach時出現問題,可以在一次foreach後unset($value)或使用不同的變數

PHP三種陣列合併方式區別示例

目前工作中接觸到的php陣列合併方式主要有三種 1 操作符 2 array merge 3 array merge recursive arrfirst first key 1,second key 1,third key 1,arrsecond first key 2,second key 2,f...

php陣列合併

php的陣列在這門語言裡使用得非常多。陣列的一些常見操作像split explode,join implode,排序 sort,asort,ksort,arsort 兩陣列合併 array combine 鍵值翻轉 array flip 當然還有比較複雜的陣列合併。陣列合併至少有4種形式。1.第一種...

PHP陣列 陣列合併

陣列合併函式 array merge或者 array merge 將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。如果只...