PHP数组合并与数组连接

合并数组

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 )
递归追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间 的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为 当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一 个数组合并的形式,就是递归追加数组。其形式为:

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);

这将返回如下结果:

Array ( [John] => Array ( [0] => 100 [1] => 45 ) [James] => 85 [Micky] => 78 )
连接两个数组

array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:

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 中合两个一维数组的方法 在 PHP 中,可以使用多种方法来实现两个一维数组的合操作。以下是几种常见的方法: #### 方法一:使用 `array_merge` 函数 PHP 提供了一个内置函数 `array_merge()` 来合一个或多个数组[^6]。该函数会将传入的数组按顺序连接起来形成一个新的数组。 ```php <?php $array1 = [1, 2, 3]; $array2 = [4, 5, 6]; $mergedArray = array_merge($array1, $array2); print_r($mergedArray); ?> ``` 上述代码的结果将是 `[1, 2, 3, 4, 5, 6]`[^6]。 --- #### 方法二:使用加号运算符 (`+`) 在 PHP 中,还可以使用加号运算符 (`+`) 合两个数组。需要注意的是,这种方法仅适用于键名不同的情况;如果存在相同的键名,则后面的值会被忽略[^7]。 ```php <?php $array1 = ['a' => 1, 'b' => 2]; $array2 = ['c' => 3, 'd' => 4]; $mergedArray = $array1 + $array2; print_r($mergedArray); ?> ``` 对于值索引的一维数组来说,这种方式通常不会达到预期效果,因此推荐优先考虑 `array_merge()`[^7]。 --- #### 方法三:通过循环手动合 当需要自定义逻辑时,可以通过遍历其中一个数组将它的元素逐一追加到另一个数组中[^8]。 ```php <?php $array1 = [1, 2, 3]; $array2 = [4, 5, 6]; foreach ($array2 as $value) { $array1[] = $value; // 将每个元素附加到第一个数组后面 } print_r($array1); ?> ``` 此方式虽然较为繁琐,但在某些特殊场景下可能更为灵活[^8]。 --- ### 总结 以上介绍了三种主要的方式用于在 PHP 中合两个一维数组。其中最简便有效的是利用 `array_merge()` 函数完成这一任务。其他两种方法则分别适合特定需求下的应用场合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值