在一个数组中合并具有相同键值的多个数组

X11

我想从数据库中创建一个Excel导出文件。数据来自2个表:namesnumbers,该names表仅包含唯一的行,但numbers可以有多个行。
如何将这两个数组合并为一个与示例数组相同的数组?

数组:

$names = array(
    array(
        "ID" => 1,
        "Name" => "Test1"
    ),
    array(
        "ID" => 2,
        "Name" => "Test2"
    )
);

$numbers = array(
    array(
        "ID" => 1,
        "Number" => "123"
    ),
    array(
        "ID" => 1,
        "Number" => "223"
    ),
    array(
        "ID" => 2,
        "Number" => "333"
    )
);

数组示例:

$merged = array(
    array(
        "ID" => 1,
        "Name" => "Test1",
        "Number" => "123",
        "Number" => "223"
    ),
    array(
        "ID" => 2,
        "Name" => "Test2",
        "Number" => "333"
    )
);
伊斯兰教Elshobokshy

一种简单的方法是使用两个循环。

$merge = [];
foreach($names as $value) {
    $merge_sub = [];
    $merge_sub[] = $value['ID'];
    $merge_sub[] = $value['Name'];
    foreach($numbers as $n) {
        if($n['ID'] == $value['ID']) $merge_sub[] = $n['Number'];
    }
    $merge[] = $merge_sub;

}

请记住,这会在不添加键的情况下添加值,因为您不能拥有多个相同的键名,因为每次更改键都会覆盖使用相同名称插入的最后一个键。但这给您一个可以遵循的算法的想法。

虽然,您可以尝试使用相同的键,但是具有这样的索引:

$merge = [];
foreach($names as $value) {
    $merge_sub = [];
    $merge_sub['ID'] = $value['ID'];
    $merge_sub['Name'] = $value['Name'];
    $i = 0;
    foreach($numbers as $n) {
        if($n['ID'] == $value['ID']) $merge_sub['Number' . $i] = $n['Number'];
        $i++;
    }
    $merge[] = $merge_sub;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将一个数组的数组合并到一个数组中?

来自分类Dev

在一个数组中合并两个具有索引的数组,在另一个perl中合并两个值

来自分类Dev

合并两个数组,从一个数组中删除重复的键

来自分类Dev

JavaScript-检查一个数组是否与另一个数组具有相同的索引

来自分类Dev

JavaScript:将多个数组的最高键值组合到一个数组中

来自分类Dev

使用另一个数组中具有相同索引的值更新数组中的值

来自分类Dev

C#将多个数组合并为一个数组

来自分类Dev

推到一个数组阵列,其具有一个数组的数组

来自分类Dev

将多个http.requests中的数组合并为一个数组

来自分类Dev

熊猫:如何在一个列上合并具有相同列名的多个数据框?

来自分类Dev

在多个数组中复制一个对象数组

来自分类Dev

如何将3个数组合并为具有相同索引的一个数组-JavaScript

来自分类Dev

Mongodb Aggregate:将多个键合并到一个数组中

来自分类Dev

如何从具有公共字段的三个数组中制作一个数组

来自分类Dev

比较两个数组,并显示第一个数组中具有第二个数组中的键的项

来自分类Dev

正确过滤具有多个条件的对象数组和一个数组

来自分类Dev

合并多个数组(对象)并与另一个数组进行比较

来自分类Dev

合并一个数组,但保留另一个数组中没有的值

来自分类Dev

php数组在多个数组中选择一个键值并更改它们

来自分类Dev

如何将JavaScript中的多个数组与第一个元素合并

来自分类Dev

在javascript中基于具有多个数组的另一个对象的过滤来过滤数组

来自分类Dev

使用数组中的多个数组创建一个数组

来自分类Dev

Laravel 5+,在一个数组中收集多个相同的集合

来自分类Dev

函数应该将具有相同属性的项目返回到一个数组中

来自分类Dev

如何仅使用注释将具有相同类型的bean组合到一个数组中?

来自分类Dev

从多个数组中获取另一个键值

来自分类Dev

Laravel 中具有另一个数组字段的必需数组字段

来自分类Dev

从多个数组中创建一个数组

来自分类Dev

将数组中的值添加到php中具有相同ID的另一个数组

Related 相关文章

  1. 1

    如何将一个数组的数组合并到一个数组中?

  2. 2

    在一个数组中合并两个具有索引的数组,在另一个perl中合并两个值

  3. 3

    合并两个数组,从一个数组中删除重复的键

  4. 4

    JavaScript-检查一个数组是否与另一个数组具有相同的索引

  5. 5

    JavaScript:将多个数组的最高键值组合到一个数组中

  6. 6

    使用另一个数组中具有相同索引的值更新数组中的值

  7. 7

    C#将多个数组合并为一个数组

  8. 8

    推到一个数组阵列,其具有一个数组的数组

  9. 9

    将多个http.requests中的数组合并为一个数组

  10. 10

    熊猫:如何在一个列上合并具有相同列名的多个数据框?

  11. 11

    在多个数组中复制一个对象数组

  12. 12

    如何将3个数组合并为具有相同索引的一个数组-JavaScript

  13. 13

    Mongodb Aggregate:将多个键合并到一个数组中

  14. 14

    如何从具有公共字段的三个数组中制作一个数组

  15. 15

    比较两个数组,并显示第一个数组中具有第二个数组中的键的项

  16. 16

    正确过滤具有多个条件的对象数组和一个数组

  17. 17

    合并多个数组(对象)并与另一个数组进行比较

  18. 18

    合并一个数组,但保留另一个数组中没有的值

  19. 19

    php数组在多个数组中选择一个键值并更改它们

  20. 20

    如何将JavaScript中的多个数组与第一个元素合并

  21. 21

    在javascript中基于具有多个数组的另一个对象的过滤来过滤数组

  22. 22

    使用数组中的多个数组创建一个数组

  23. 23

    Laravel 5+,在一个数组中收集多个相同的集合

  24. 24

    函数应该将具有相同属性的项目返回到一个数组中

  25. 25

    如何仅使用注释将具有相同类型的bean组合到一个数组中?

  26. 26

    从多个数组中获取另一个键值

  27. 27

    Laravel 中具有另一个数组字段的必需数组字段

  28. 28

    从多个数组中创建一个数组

  29. 29

    将数组中的值添加到php中具有相同ID的另一个数组

热门标签

归档