1、新建php文件。
创新互联是少有的网站设计、做网站、营销型企业网站、微信平台小程序开发、手机APP,开发、制作、设计、买链接、推广优化一站式服务网络公司,2013年开创至今,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
2、创建名为$a1的数组并为数组添加元素。
3、创建名为$a2的数组并为数组添加元素。
4、创建名为$a3的数组并为数组添加元素。
5、array_diff_assoc() 比较三个数组的键名和键值,并返回差集。
6、打印差集。
7、预览效果如图。
1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
复制代码
代码如下:
array
array_merge
(array
array1
array2…,arrayN)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
复制代码
代码如下:
$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);
这将返回如下所示的结果,运行代码:
复制代码
代码如下:
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.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
复制代码
代码如下:
$class1
=
array("John"
=
100,
"James"
=
85);
$class2
=
array("Micky"
=
78,
"John"
=
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
这将返回如下结果:
view
sourceprint?Array
(
[John]
=
Array
(
[0]
=
100
[1]
=
45
)
[James]
=
85
[Micky]
=
78
)
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,两个输入数组必须大小相同,不能为空。示例如下:
复制代码
代码如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
这会返回:
复制代码
代码如下:
Array
(
[AL]
=
Alabama
[AK]
=
Alaska
[AZ]
=
Arizona
[AR]
=
Arkansas
)
php合并数组,一般会使用array_merge方法。
array_merge
—
合并一个或多个数组
array
array_merge
(
array
$array1
[,
array
$...
]
)
array_merge
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
例子1,数组使用字符串键名,相同的键名会被后面的覆盖
?php
$arr1
=
array('name'='fdipzone');
$arr2
=
array('name'='terry');
$result
=
array_merge($arr1,
$arr2);
print_r($result);
?
输出:
Array
(
[name]
=
terry
)
例子2,数组使用数字键名,键名相同不会覆盖,且键名会重新索引
?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
)
因工作需要,需要将调查问卷的两部分选择题的答案合并一起,每部分答案为数组(key=value),key为题号,value为答案,且两部分的题号不存在重复。
使用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)是数字,所以键名会重新索引,导致题号不能保留。
合并数组并保留键值的方法:
?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
)
使用
“+”
运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。
以上这篇php合并数组并保留键值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:php数组实现根据某个键值将相同键值合并生成新二维数组的方法PHP合并数组的2种方法小结PHP中数组合并的两种方法及区别介绍
php将两个键名和键值的数组元素合并为一个数组
你好,有两个方法可以实现:
一:
$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将两个键名和键值的数组元素合并为一个数组
php将两个键名和键值的数组元素合并
如果存在相同的键名,则可以这样来处理,我们参照第一个方法修改一下:
$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博客
)