首页  >  文章  >  后端开发  >  如何合并具有匹配键的 PHP 数组并创建子数组?

如何合并具有匹配键的 PHP 数组并创建子数组?

DDD
DDD原创
2024-10-27 20:33:30967浏览

How to Merge PHP Arrays with Matching Keys and Create Sub-Arrays?

PHP 数组合并:将数组与匹配的键组合

本问题探讨如何合并两个共享相同键的 PHP 数组。让我们深入探讨问题和解决方案。

问题:

考虑以下两个数组:

  • 第一个数组:键值对其中键代表摄像机编号,值代表 IP 地址。
  • 第二个数组:具有相同摄像机编号但不同值代表摄像机名称的键值对。

目标是合并通过聚合每个匹配键对应的值来聚合这些数组。

使用 array_map 的解决方案:

虽然 array_merge_recursive 可以递归地合并数组,但它需要具有匹配键值对的数组。使用 array_map 的自定义解决方案可以实现所需的结果:

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);
    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
    $results += array_merge_recursive($a, $b);
}, $array1, $array2);

解释:

  • 对于第一个数组中的每个键,它创建一个子具有键“ip”且值设置为原始值的数组。
  • 类似地,对于第二个数组中的每个键,它会创建一个具有键“name”且值设置为原始值的子数组.
  • 最后,它使用 array_merge_recursive 来合并共享相同摄像机编号的子数组。

输出是一个数组,其中键表示摄像机编号,值作为子数组包含'ip' 和 'name' 属性。

通过利用 array_map 和自定义键操作,该解决方案有效地将数组与匹配键合并,同时仍然保留键值结构。

以上是如何合并具有匹配键的 PHP 数组并创建子数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn