php 多个数组并且键名相同以键名合并为新数组
时间: 2023-10-13 08:25:56 浏览: 131
可以使用 PHP 中的 array_merge_recursive 函数来合并多个数组,并且将相同键名的值合并为一个新数组。例如:
```
$array1 = array('color' => array('favorite' => 'red'), 5);
$array2 = array('color' => array('favorite' => 'green', 'blue'), 10);
$result = array_merge_recursive($array1, $array2);
print_r($result);
```
输出结果为:
```
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)
```
在上面的例子中,$array1 和 $array2 都包含一个键名为 'color' 的数组,使用 array_merge_recursive 合并后,新数组的 'color' 元素对应的值是一个包含两个颜色的数组。
相关问题
php 多个数组合并
可以使用 PHP 的 array_merge() 函数将多个数组合并成一个数组。例如:
```php
$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$array3 = array('g', 'h', 'i');
$result = array_merge($array1, $array2, $array3);
print_r($result);
```
输出结果为:
```
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
[6] => g
[7] => h
[8] => i
)
```
可以看到,三个数组都被合并成了一个数组。注意,如果多个数组中有相同的键名,则后面的数组会覆盖前面的数组。如果想保留键名并合并数组,可以使用 array_merge_recursive() 函数。
php 十个数组根据相同值合并成一个数组
如果您想要将十个数组中相同的值合并成一个数组,可以使用循环遍历和条件判断的方法。以下是一个示例代码```php
// 十个数组示例
$array1 = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
];
$array2 = [
['id' => 2, 'age' => 25],
['id' => 3, 'age' => 30],
];
// 更多数组...
$array10 = [
['id' => 1, 'location' => 'New York'],
['id' => 3, 'location' => 'Paris'],
];
// 合并数组
$result = [];
$allArrays = [$array1, $array2, /* 更多数组... */, $array10];
foreach ($allArrays as $array) {
foreach ($array as $item) {
$id = $item['id'];
if (!isset($result[$id])) {
$result[$id] = $item;
} else {
$result[$id] = array_merge($result[$id], $item);
}
}
}
// 将索引重新排序
$result = array_values($result);
// 打印合并后的结果
print_r($result);
```
上述代码将根据 "id" 字段将十个数组中相同 "id" 值的数组项合并到 `$result` 数组中,并使用 `array_values()` 函数重新排序索引。
请注意,上述示例中假设每个数组中的 "id" 字段是唯一的。如果 "id" 字段不是唯一的,您可能需要根据具体需求进行调整,例如使用多维数组来存储相同 "id" 值的项。
阅读全文