比如下面数组
$data = [ ['key' => 'A', 'value' => 'ValueA1'], ['key' => 'B', 'value' => 'ValueB1'], ['key' => 'A', 'value' => 'ValueA2'], ['key' => 'C', 'value' => 'ValueC1'], ['key' => 'B', 'value' => 'ValueB2'], ];现在,你想要按照 key 字段的值合并相同的数组。你可以使用以下代码实现:
$result = []; foreach ($data as $item) { $key = $item['key']; // 如果结果数组中已存在相同 key 的项,将当前项合并到已存在的项中 if (isset($result[$key])) { $result[$key]['value'][] = $item['value']; } else { // 如果结果数组中不存在相同 key 的项,直接添加到结果数组 $result[$key] = ['key' => $key, 'value' => [$item['value']]]; } } // 将结果数组转换为索引数组 $result = array_values($result); // 输出结果 print_r($result);
在这个例子中,使用了一个 $result 数组来保存最终合并后的结果。通过遍历原始数组 $data,检查 key 字段是否已存在于 $result 数组中。如果存在,将当前项合并到已存在的项中;如果不存在,直接添加到结果数组中。
最后,通过 array_values 函数将关联数组转换为索引数组。这样,你就得到了按照 key 字段合并后的最终结果。你可以根据实际情况调整代码以适应你的数据结构。