1、新建php文件。

創(chuàng)新互聯(lián)是少有的網(wǎng)站設(shè)計、做網(wǎng)站、營銷型企業(yè)網(wǎng)站、微信平臺小程序開發(fā)、手機APP,開發(fā)、制作、設(shè)計、買鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,2013年開創(chuàng)至今,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
2、創(chuàng)建名為$a1的數(shù)組并為數(shù)組添加元素。
3、創(chuàng)建名為$a2的數(shù)組并為數(shù)組添加元素。
4、創(chuàng)建名為$a3的數(shù)組并為數(shù)組添加元素。
5、array_diff_assoc() 比較三個數(shù)組的鍵名和鍵值,并返回差集。
6、打印差集。
7、預(yù)覽效果如圖。
1.合并數(shù)組
array_merge()函數(shù)將數(shù)組合并到一起,返回一個聯(lián)合的數(shù)組。所得到的數(shù)組以第一個輸入數(shù)組參數(shù)開始,按后面數(shù)組參數(shù)出現(xiàn)的順序依次迫加。其形式為:
復(fù)制代碼
代碼如下:
array
array_merge
(array
array1
array2…,arrayN)
將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。
實例如下:
復(fù)制代碼
代碼如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
這將返回如下所示的結(jié)果,運行代碼:
復(fù)制代碼
代碼如下:
Array
(
[0]
=
A
[1]
=
4
[2]
=
9
[3]
=
3
[4]
=
K
[5]
=
7
[6]
=
5
[7]
=
Q
[8]
=
6
[9]
=
8
[10]
=
2
[11]
=
J
)
2.遞歸追加數(shù)組
array_merge_recursive()函數(shù)與array_merge()相同,可以將兩個或多個數(shù)組合并在一起,形成一個聯(lián)合的數(shù)組.兩者之間的區(qū)別在于,當某個輸入數(shù)組中的某個鍵己經(jīng)存在于結(jié)果數(shù)組中時該函數(shù)會采取不同的處理方式.a(chǎn)rray_merge()會覆蓋前面存在的鍵/值對,替換為當前輸入數(shù)組中的鍵/值對,而array_merge_recursive()將把兩個值合并在一起,形成一個新的數(shù)組,并以原有的鍵作為數(shù)組名。還有一個數(shù)組合并的形式,就是遞歸追加數(shù)組。其形式為:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
復(fù)制代碼
代碼如下:
$class1
=
array("John"
=
100,
"James"
=
85);
$class2
=
array("Micky"
=
78,
"John"
=
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
這將返回如下結(jié)果:
view
sourceprint?Array
(
[John]
=
Array
(
[0]
=
100
[1]
=
45
)
[James]
=
85
[Micky]
=
78
)
3.連接兩個數(shù)組
array_combine()函數(shù)會得到一個新數(shù)組,它由一組提交的鍵和對應(yīng)的值組成。其形式為:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,兩個輸入數(shù)組必須大小相同,不能為空。示例如下:
復(fù)制代碼
代碼如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
這會返回:
復(fù)制代碼
代碼如下:
Array
(
[AL]
=
Alabama
[AK]
=
Alaska
[AZ]
=
Arizona
[AR]
=
Arkansas
)
php合并數(shù)組,一般會使用array_merge方法。
array_merge
—
合并一個或多個數(shù)組
array
array_merge
(
array
$array1
[,
array
$...
]
)
array_merge
將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面,返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的將不會覆蓋原來的值,而是附加到后面。
如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。
例子1,數(shù)組使用字符串鍵名,相同的鍵名會被后面的覆蓋
?php
$arr1
=
array('name'='fdipzone');
$arr2
=
array('name'='terry');
$result
=
array_merge($arr1,
$arr2);
print_r($result);
?
輸出:
Array
(
[name]
=
terry
)
例子2,數(shù)組使用數(shù)字鍵名,鍵名相同不會覆蓋,且鍵名會重新索引
?php
$arr1
=
array(0='fdipzone',1='terry');
$arr2
=
array(0='php',1='python');
$result
=
array_merge($arr1,
$arr2);
print_r($result);
?
輸出:
Array
(
[0]
=
fdipzone
[1]
=
terry
[2]
=
php
[3]
=
python
)
因工作需要,需要將調(diào)查問卷的兩部分選擇題的答案合并一起,每部分答案為數(shù)組(key=value),key為題號,value為答案,且兩部分的題號不存在重復(fù)。
使用array_merge合并兩部分答案
?php
$form_data1
=
array(11='A',12='B',13='C',14='D');
$form_data2
=
array(25='B',26='A',27='D',28='C');
$result
=
array_merge($form_data1,
$form_data2);
print_r($result);
?
輸出:
Array
(
[0]
=
A
[1]
=
B
[2]
=
C
[3]
=
D
[4]
=
B
[5]
=
A
[6]
=
D
[7]
=
C
)
使用array_merge合并,因為題號(key)是數(shù)字,所以鍵名會重新索引,導(dǎo)致題號不能保留。
合并數(shù)組并保留鍵值的方法:
?php
$form_data1
=
array(11='A',12='B',13='C',14='D');
$form_data2
=
array(25='B',26='A',27='D',28='C');
$result
=
$form_data1
+
$form_data2;
print_r($result);
?
輸出:
Array
(
[11]
=
A
[12]
=
B
[13]
=
C
[14]
=
D
[25]
=
B
[26]
=
A
[27]
=
D
[28]
=
C
)
使用
“+”
運算符合并數(shù)組,可以保留數(shù)組的鍵值,如果合并的數(shù)組中含有相同的鍵值,后面的不會覆蓋前面的鍵值(前面的優(yōu)先)。
以上這篇php合并數(shù)組并保留鍵值的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:php數(shù)組實現(xiàn)根據(jù)某個鍵值將相同鍵值合并生成新二維數(shù)組的方法PHP合并數(shù)組的2種方法小結(jié)PHP中數(shù)組合并的兩種方法及區(qū)別介紹
php將兩個鍵名和鍵值的數(shù)組元素合并為一個數(shù)組
你好,有兩個方法可以實現(xiàn):
一:
$arry_a?=?array(0,?1,?2);
$arry_b?=?array('dongsir','董先生','董先生的CSDN博客');
$arry_ab?=?[];
foreach?($arry_b?as?$key?=?$value)?{
$arry_ab[$arry_a[$key]]?=?$value;
}
echo?"pre";
print_r($arry_ab);
輸出
Array
(
[0]?=?dongsir
[1]?=?董先生
[2]?=?董先生的CSDN博客
)
第二個方法:
php將兩個鍵名和鍵值的數(shù)組元素合并為一個數(shù)組
php將兩個鍵名和鍵值的數(shù)組元素合并
如果存在相同的鍵名,則可以這樣來處理,我們參照第一個方法修改一下:
$arry_a?=?array("a",?"a",?"c");
$arry_b?=?array('dongsir','董先生','董先生的CSDN博客');
$arry_ab?=?[];
foreach?($arry_b?as?$key?=?$value)?{
if?(isset($arry_ab[$arry_a[$key]]))?{
$arry_ab[$arry_a[$key]]?=?$arry_ab[$arry_a[$key]]?.?",".?$value;
}else{
$arry_ab[$arry_a[$key]]?=?$value;
}
}
echo?"pre";
print_r($arry_ab);
輸出:
Array
(
[a]?=?dongsir,董先生
[c]?=?董先生的CSDN博客
)
文章名稱:php將數(shù)據(jù)鍵與值合并,php 數(shù)組如果元素相同就合并
新聞來源:http://chinadenli.net/article26/dsgedcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、標簽優(yōu)化、營銷型網(wǎng)站建設(shè)、網(wǎng)站收錄、移動網(wǎng)站建設(shè)、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)