PHP 同一键上的数组合并:使用 array_map 的解决方案
在 PHP 中,当数组共享公共键时,合并数组可能会很困难。让我们通过利用 array_map 函数的解决方案来解决这个问题。
目标:
基于共享键(例如“Camera1”)合并两个数组 $array1 和 $array2 ,“Camera2”),并确保合并结果保持所需的结构体。
解决方案:
array_map 提供了一种同时迭代多个数组的方法,对每个元素应用回调函数。下面是我们如何使用它:
<code class="php">$array1 = [ ["Camera1" => "192.168.101.71"], ["Camera2" => "192.168.101.72"], ["Camera3" => "192.168.101.74"] ]; $array2 = [ ["Camera1" => "VT"], ["Camera2" => "UB"], ["Camera3" => "FX"] ]; $results = []; array_map(function($a, $b) use (&$results) { // Get the key for both arrays $key = current(array_keys($a)); $a[$key] = ['ip' => $a[$key]]; $key = current(array_keys($b)); $b[$key] = ['name' => $b[$key]]; $results += array_merge_recursive($a, $b); }, $array1, $array2);</code>
工作原理:
输出:
var_dump($results);
将产生以下输出:
<code class="php">array (size=3) 'Camera1' => array (size=2) 'ip' => string '192.168.101.71' (length=14) 'name' => string 'VT' (length=2) 'Camera2' => array (size=2) 'ip' => string '192.168.101.72' (length=14) 'name' => string 'UB' (length=2) 'Camera3' => array (size=2) 'ip' => string '192.168.101.74' (length=14) 'name' => string 'FX' (length=2)</code>
此解决方案有效地合并了两个数组同时保留共享密钥并确保所需的数组结构。
以上是如何使用'array_map”将 PHP 数组与共享键合并?的详细内容。更多信息请关注PHP中文网其他相关文章!