这里我们主要介绍的是array_merge()函数,也是我们在使用PHP合并数组的时候经常使用到的函数,其他的附加合并函数,我在这里也大概描述一下就行了,如果需要更加详细或者更多的函数,可以查看PHP帮助文档,也可以根据需求写适合自己的PHP自定义函数
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
Php代码
array_merge (array array1 array2…,arrayN)
这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例:
$fruits = array("apple","banana","pear"); $numbered = array("1","2","3"); $cards = array_merge($fruits, $numbered); print_r($cards); // 输出 // Array ( [0] => apple [1] => banana [2] => pear [3] => 1 [4] => 2 [5] => 3 )
2. 追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.
两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
array array_merge_recursive(array array1,array array2[…,array arrayN])
程序实例如下:
实例:
$fruit1 = array("apple" => "red", "banana" => "yellow"); $fruit2 = array("pear" => "yellow", "apple" => "green"); $result = array_merge_recursive($fruit1, $fruit2); print_r($result); // 输出 // Array ( [apple] => Array ( [0] => red [1] => green ) [banana] => yellow [pear] => yellow )
现在键 apple 指向一个数组,这个数组由两个颜色值组成的索引数组。
3. 连接数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
array array_combine(array keys,array values)
注意,两个输入数组必须大小相同,不能为空。示例如下
实例:
$name = array("apple", "banana", "orange"); $color = array("red", "yellow", "orange"); $fruit = array_combine($name, $color); print_r($fruit); // 输出 // Array ( [apple] => red [banana] => yellow [orange] => orange )
4. 拆分数组 array_slice()
array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式:
5. 接合数组 array_splice()
array_splice()函数会删除数组中从offset开始到offset+length 结束的所有元素,并以数组的形式返回所删除的元素。其形式为:
6. 数组的交集 array_intersect()
array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:
7. 关联数组的交集 array_intersect_assoc()
函数array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。
8. 数组的差集 array_diff()
函数array_diff()返回出现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。
9. 关联数组的差集 array_diff_assoc()
函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中出现而不再其他输入数组中出现的键/值对才会返回到结果数组中。其形式如下:
10. 获取当前数组键 key()
key()函数返回input_array中当前指针所在位置的键。其形式如下:
12. 获取当前数组键和值 each()
each()函数返回input_array的当前键/值对,并将指针推进一个位置。其形式如下:
13. in_array()函数
in_array()函数在一个数组汇总搜索一个特定值,如果找到这个值返回true,否则返回false。
14. array_key_exists()函数
如果在一个数组中找到一个指定的键,函数array_key_exists()返回true,否则返回false。
15. array_search()函数
array_search()函数在一个数组中搜索一个指定的值,如果找到则返回相应的键,否则返回false。
16. array_keys()函数
array_keys()函数返回一个数组,其中包含所搜索数组中找到的所有键。
17. array_values()函数
array_values()函数返回一个数组中的所有值,并自动为返回的数组提供数值索引。
18. 在数组头添加元素
array_unshift()函数在数组头添加元素。所有己有的数值键都会相应地修改,以反映其在数组中的新位置,但是关联键不受影响。
19. 在数组尾添加元素
array_push()函数的返回值是int型,是压入数据后数组中元素的个数,可以为此函数传递多个变量作为参数,同时向数组压入多个变量。
20. 从数组头删除值
array_shift()函数删除并返回数组中找到的元素。其结果是,如果使用的是数值健,则所有相应的值都会下移,而使用关联键的数组不受影响。
21. 从数组尾删除元素
array_pop()函数删除并返回数组的最后一个元素。