在PHP中合并具有不同长度的多维数组

丹尼尔

我需要合并两个具有以下格式的数组:

array(9) 
{ 
[0]=> array(1) { ["BLA"]=> string(7) "bis 050" } 
[1]=> array(1) { ["BLA"]=> string(7) "bis 060" } 
[2]=> array(1) { ["BLA"]=> string(7) "bis 070" } 
[3]=> array(1) { ["BLA"]=> string(7) "bis 080" } 
[4]=> array(1) { ["BLA"]=> string(7) "bis 090" } 
[5]=> array(1) { ["BLA"]=> string(7) "bis 100" } 
[6]=> array(1) { ["BLA"]=> string(7) "bis 110" } 
[7]=> array(1) { ["BLA"]=> string(7) "bis 120" } 
[8]=> array(1) { ["BLA"]=> string(6) "gr 120" } 
} 

array(5) 
{ 
[0]=> array(2) {
   ["BLA"]=> string(7) "bis 050" 
   ["Amount"]=> string(3) "832" } 
[1]=> array(2) { 
   ["BLA"]=> string(7) "bis 060" 
   ["Amount"]=> string(3) "448" } 
[2]=> array(2) { 
   ["BLA"]=> string(7) "bis 090" 
   ["Amount"]=> string(4) "1216" } 
[3]=> array(2) { 
   ["BLA"]=> string(7) "bis 100" 
   ["Amount"]=> string(4) "1024" } 
[4]=> array(2) { 
   ["BLA"]=> string(7) "bis 110" 
   ["Amount"]=> string(3) "896" } 
}

我试过了array_merge()array_merge_recursive()但是没有用。我的目标是将第二个键及其值从array2(Amount)写入第一个键(BLA)相同的数组1中。另外"Amount":"0",如果array2中没有相应的值,我想写有什么办法用PHP做到这一点?

结果应如下所示:

    Result:
{ 
[0]=> array(2) { 
   ["BLA"]=> string(7) "bis 050"  
   ["Amount"]=> string(3) "832" } 
[1]=> array(2) { 
   ["BLA"]=> string(7) "bis 060"  
   ["Amount"]=> string(3) "448" } 
[2]=> array(2) { 
   ["BLA"]=> string(7) "bis 070" 
   ["Amount"]=> string(1) "0" }  
[3]=> array(2) { 
   ["BLA"]=> string(7) "bis 080" 
   ["Amount"]=> string(1) "0" }  
[4]=> array(2) { 
   ["BLA"]=> string(7) "bis 090" 
   ["Amount"]=> string(4) "1216" }
[5]=> array(2) { 
   ["BLA"]=> string(7) "bis 100" 
   ["Amount"]=> string(4) "1024" }  
[6]=> array(2) { 
   ["BLA"]=> string(7) "bis 110" 
   ["Amount"]=> string(3) "896" } 
[7]=> array(2) { 
   ["BLA"]=> string(7) "bis 120" 
   ["Amount"]=> string(1) "0" }  
[8]=> array(2) { 
   ["BLA"]=> string(6) "gr 120" 
   ["Amount"]=> string(1) "0" } 
}   
嘻哈03199

我整理了一个快速演示,似乎可以解决您的问题。让我知道您是否需要任何其他帮助。

<?php

$arrOne = array(
    array("BLA" => "bis 050"),
    array("BLA" => "bis 060"),
    array("BLA" => "bis 070"),
    array("BLA" => "bis 080"),
    array("BLA" => "bis 090"),
    array("BLA" => "bis 100"),
    array("BLA" => "bis 110"),
    array("BLA" => "bis 120"),
    array("BLA" => "gr 120")
);

$arrTwo = array(
    array("BLA" => "bis 050","Amount" => "832"),
    array("BLA" => "bis 060","Amount" => "448"),
    array("BLA" => "bis 090","Amount" => "1216"),
    array("BLA" => "bis 100","Amount" => "1024"),
    array("BLA" => "bis 110","Amount" => "896")
);


$arrOutput = array();

foreach($arrOne as $arrOneValue) {
    $searchKey = $arrOneValue["BLA"];

    foreach($arrTwo as $arrTwoValue) {
        if($arrTwoValue["BLA"] == $searchKey) {
            $arrOutput[] = array("BLA" => $searchKey, "Amount" => $arrTwoValue["Amount"]);
            continue 2; // Continue the outer loop
        }
    }

    // We didn't find the key
    $arrOutput[] = array("BLA" => $searchKey, "Amount" => "0");
}

var_dump($arrOutput);
?>

产生如下内容:

array(9) { 
    [0]=> array(2) { ["BLA"]=> string(7) "bis 050" ["Amount"]=> string(3) "832" } 
    [1]=> array(2) { ["BLA"]=> string(7) "bis 060" ["Amount"]=> string(3) "448" } 
    [2]=> array(2) { ["BLA"]=> string(7) "bis 070" ["Amount"]=> string(1) "0" } 
    [3]=> array(2) { ["BLA"]=> string(7) "bis 080" ["Amount"]=> string(1) "0" } 
    [4]=> array(2) { ["BLA"]=> string(7) "bis 090" ["Amount"]=> string(4) "1216" } 
    [5]=> array(2) { ["BLA"]=> string(7) "bis 100" ["Amount"]=> string(4) "1024" } 
    [6]=> array(2) { ["BLA"]=> string(7) "bis 110" ["Amount"]=> string(3) "896" } 
    [7]=> array(2) { ["BLA"]=> string(7) "bis 120" ["Amount"]=> string(1) "0" } 
    [8]=> array(2) { ["BLA"]=> string(6) "gr 120" ["Amount"]=> string(1) "0" } 
} 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有不同长度的多维数组

来自分类Dev

如何合并到具有不同长度的sql列?

来自分类Dev

打印具有不同长度的数组的嵌套循环

来自分类Dev

MATLAB:比较2个具有不同长度的数组

来自分类Dev

打印具有不同长度的数组的嵌套循环

来自分类Dev

MATLAB:比较2个具有不同长度的数组

来自分类Dev

如何在JavaScript中映射具有不同长度的两个对象数组的属性

来自分类Dev

如何在C ++中循环遍历具有不同长度的动态2D数组

来自分类Dev

在具有不同实例数的特定列上合并两个不同长度的数据帧

来自分类Dev

比较两个相同长度但在JS中内部具有不同对象ID的数组

来自分类Dev

一个视图控制器中具有不同长度数组的Objc 2 collectionviews

来自分类Dev

为每个一级索引从 3D 数组中删除具有不同长度的列(Python)

来自分类Dev

在最近的日期时间合并具有不同长度的数据框

来自分类Dev

合并两个相同长度但键不同的数组?

来自分类Dev

如何从字符向量中的不同文本中删除具有不同长度的文本块?

来自分类Dev

比较两个具有不同长度的2D数组以进行匹配

来自分类Dev

循环中具有不同长度的两个数组

来自分类Dev

结构的多个实例包含在编译时已知的具有不同长度的数组

来自分类Dev

如何存储多个具有不同长度的 numpy 1d 数组并打印它

来自分类Dev

如何将一组对象(不同长度)转换为一个与原始数组中的元素具有不同属性的对象?

来自分类Dev

合并2个不同长度的数组,重复较短的数组以匹配较长的数组的长度

来自分类Dev

绘制不同长度的数组

来自分类Dev

绘制不同长度的数组

来自分类Dev

如何使用itertools迭代python中具有不同长度的可迭代对象?

来自分类Dev

如何在MYSQL中对具有不同长度的字母数字列进行排序?

来自分类Dev

如何在R中组合两个具有不同长度的数据帧?

来自分类Dev

如何从具有不同长度的列表列表中创建Pandas DataFrame?

来自分类Dev

字典列表中具有不同长度和键的CSV

来自分类Dev

如何反转数据帧中具有不同长度的个体的观察顺序

Related 相关文章

  1. 1

    具有不同长度的多维数组

  2. 2

    如何合并到具有不同长度的sql列?

  3. 3

    打印具有不同长度的数组的嵌套循环

  4. 4

    MATLAB:比较2个具有不同长度的数组

  5. 5

    打印具有不同长度的数组的嵌套循环

  6. 6

    MATLAB:比较2个具有不同长度的数组

  7. 7

    如何在JavaScript中映射具有不同长度的两个对象数组的属性

  8. 8

    如何在C ++中循环遍历具有不同长度的动态2D数组

  9. 9

    在具有不同实例数的特定列上合并两个不同长度的数据帧

  10. 10

    比较两个相同长度但在JS中内部具有不同对象ID的数组

  11. 11

    一个视图控制器中具有不同长度数组的Objc 2 collectionviews

  12. 12

    为每个一级索引从 3D 数组中删除具有不同长度的列(Python)

  13. 13

    在最近的日期时间合并具有不同长度的数据框

  14. 14

    合并两个相同长度但键不同的数组?

  15. 15

    如何从字符向量中的不同文本中删除具有不同长度的文本块?

  16. 16

    比较两个具有不同长度的2D数组以进行匹配

  17. 17

    循环中具有不同长度的两个数组

  18. 18

    结构的多个实例包含在编译时已知的具有不同长度的数组

  19. 19

    如何存储多个具有不同长度的 numpy 1d 数组并打印它

  20. 20

    如何将一组对象(不同长度)转换为一个与原始数组中的元素具有不同属性的对象?

  21. 21

    合并2个不同长度的数组,重复较短的数组以匹配较长的数组的长度

  22. 22

    绘制不同长度的数组

  23. 23

    绘制不同长度的数组

  24. 24

    如何使用itertools迭代python中具有不同长度的可迭代对象?

  25. 25

    如何在MYSQL中对具有不同长度的字母数字列进行排序?

  26. 26

    如何在R中组合两个具有不同长度的数据帧?

  27. 27

    如何从具有不同长度的列表列表中创建Pandas DataFrame?

  28. 28

    字典列表中具有不同长度和键的CSV

  29. 29

    如何反转数据帧中具有不同长度的个体的观察顺序

热门标签

归档