首页 >后端开发 >php教程 >如何在 PHP 中将多个数组合并为基于单行的结构?

如何在 PHP 中将多个数组合并为基于单行的结构?

Barbara Streisand
Barbara Streisand原创
2024-12-29 16:46:10266浏览

How Can I Merge Multiple Arrays into a Single Row-Based Structure in PHP?

合并多个数组中的数据以形成基于行的结构

在数据操作任务中,通常需要将不同来源的数据组合起来创建综合数据集。这可以通过合并多个数组的数据来实现。具体来说,当目标是构造基于行的结构时,array_merge_recursive 函数提供了一个强大的解决方案。

考虑以下示例。给出了具有以下结构的两个数组:

  • 数组 1:

    • ['gross_value' => '100', '数量' => '1']
    • ['gross_value' =>; '200', '数量' => '1']
  • 数组 2:

    • ['item_title_id' => '1', 'order_id' =>; '4']
    • ['item_title_id'=> '2', 'order_id' =>; '4']

目标是将这些数组的内容合并到具有以下结构的单个数组中:

  • ['gross_value '=> '100', '数量' => '1', 'item_title_id' =>; '1', 'order_id' =>; '4']
  • ['gross_value' => '200', '数量' => '1', 'item_title_id' =>; '2', 'order_id' =>; '4']

要实现此目的,可以使用 array_merge_recursive 函数。该函数递归地合并数组,将具有相同键的值组合到嵌套数组中。但是,在给定的上下文中,数组具有数字键。为了使 array_merge_recursive 正常工作,所有数字键必须转换为字符串(关联数组)。

以下代码片段演示了解决方案:

$ar1 = [
    ['gross_value' => '100', 'quantity' => '1'],
    ['gross_value' => '200', 'quantity' => '1']
];

$ar2 = [
    ['item_title_id' => '1', 'order_id' => '4'],
    ['item_title_id' => '2', 'order_id' => '4']
];

// Convert numeric keys to strings
foreach ($ar1 as &$row) {
    $row = array_combine(array_keys($row), array_values($row));
}

foreach ($ar2 as &$row) {
    $row = array_combine(array_keys($row), array_values($row));
}

// Merge arrays
$result = array_merge_recursive($ar1, $ar2);

print_r($result);

执行此代码将产生所需的合并结果数组,两个数组中的数据被组合成一个基于行的结构。

以上是如何在 PHP 中将多个数组合并为基于单行的结构?的详细内容。更多信息请关注PHP中文网其他相关文章!

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