作者:_____Fmr丶 | 来源:互联网 | 2024-11-24 15:31
在 PHP 中,`array_combine` 函数用于创建一个新的数组,其中一个数组的元素作为键名,另一个数组的元素作为对应的键值。然而,当键名存在重复时,`array_combine` 只会保留最后一个键值对,而忽略之前的重复项。例如,给定两个数组 `$sum` 和 `$city`:
```php
$sum = Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 50 [5] => 15 [6] => 0 [7] => 0 [8] => 15 [9] => 15 );
$city = Array ( [0] => 南昌 [1] => 赣州 [2] => 吉安 [3] => 九江 [4] => 南昌 [5] => 九江 [6] => 萍乡 [7] => 省外 [8] => 南昌 [9] => 九江 );
```
使用 `array_combine($sum, $city)` 的结果将不会如预期那样显示所有城市,而是只显示最后出现的相同键值的城市。
为了实现所有数据的完整显示,可以通过自定义函数来处理这个问题,例如:
```php
function customCombine($keys, $values) {
$result = [];
foreach ($keys as $index => $key) {
if (!isset($result[$key])) {
$result[$key] = [];
}
$result[$key][] = $values[$index];
}
return $result;
}
$result = customCombine($sum, $city);
print_r($result);
```
这段代码将生成一个新数组,其中每个键对应一个包含所有相关值的数组。这样可以确保即使键名重复,所有数据也能被正确地表示和访问。