【问题标题】:How to Add a new Key and Merge the array values in multidimemsional array PHP如何在多维数组 PHP 中添加新键并合并数组值
【发布时间】:2012-08-21 08:42:30
【问题描述】:

这是我的第一个函数的结果:

Array
(
[0] => Array
    (
        [MaidID] => 13
        [Stores] => Array
            (
                [0] => 14
                [1] => 5
            )
    )

  [1] => Array
     (
        [MaidID] => 3
        [Stores] => Array
            (
                [0] => 4
            )

    )

[2] => Array
    (
        [MaidID] => 41
        [Stores] => Array
            (
                [0] => 14
            )

    )
 )

然后,这是我的第二个函数的结果:

  Array
 (
 [1] => Array
    (
        [MaidID] => 14
        [Cash] => 10000
        [Debit] => 0
        [Credit] => 0
    )
  )

结果应该是这样的:

   Array ([0] => Array (

        [MaidID] => 14
        [Cash] => 10000.00
        [Debit] => 0
        [Credit] => 0   
        [MaidsID] => Array(
                       [0] => 13                          
                       [1] => 41
     )
   )
 )

有可能做到吗?我需要一个新的密钥名称 MaidsID 指向多个商店拥有的 MaidID 列表。请帮助我,请耐心等待我的问题,我只是一个初学者。谢谢很多。

【问题讨论】:

  • 各位,请帮帮我。谢谢

标签: php multidimensional-array array-merge


【解决方案1】:

此代码工作正常。 $a 是你的第一个数组 $b 是第二个,$c 是结果

$a = array (array('Maid' => 1, 'Stores' => array (1,5) ), array('Maid' => 3, 'Stores' => array (4) ), array('Maid' => 4, 'Stores' => array (1) ));

$b = array (array('Maid' => 1, 'Cash' => 10000, 'Debit' => 0, 'Credit' => 0));

$MaidsID=array();

foreach ($a as $aa ){
    if (count($aa['Stores']>1)){
        array_push($MaidsID, $aa['Maid']);
    }
}
$MaidsID=array('MaidsID' => $MaidsID);

$c = array_merge($b, $MaidsID);`

【讨论】:

    【解决方案2】:

    我在这里测试过,没问题。 (只需将 $a 替换为您的第一个数组,将 $b 替换为 seccond )。 你确定你的数组结构和你上面写的完全一样吗?也许这有什么问题。 您已将数组放入另一个数组中? (我认为不需要)

    Howerver:对于此代码:

    `$a = array (array('Maid' => 1, 'Stores' => array (1,5) ), array('Maid' => 3, 'Stores' => array (4) ) , array('Maid' => 4, 'Stores' => array (1) )); $b = array (array('Maid' => 1, 'Cash' => 10000, 'Debit' => 0, 'Credit' => 0));

    print_r($a);
    echo "<br><br>================================================<br><br>";
    print_r($b);
    echo "<br><br>================================================<br><br>";
    
    $MaidsID=array();
    
    foreach ($a as $aa ){
        if (count($aa['Stores']>1)){
            array_push($MaidsID, $aa['Maid']);
        }
    }
    $MaidsID=array('MaidsID' => $MaidsID);
    
    $c = array_merge($b, $MaidsID);
    
    print_r($c);
    echo "<br><br>================================================<br><br>";`
    

    输出是:

    Array ( [0] => Array ( [Maid] => 1 [Stores] => Array ( [0] => 1 [1] => 5 ) ) [1] => Array ( [Maid] = > 3 [商店] => 数组 ( [0] => 4 ) ) [2] => 数组 ( [女仆] => 4 [商店] => 数组 ( [0] => 1 ) ) )

    ================================================ =

    数组([0] => 数组([女佣] => 1 [现金] => 10000 [借方] => 0 [贷方] => 0))

    ================================================ =

    Array ( [0] => Array ( [Maid] => 1 [Cash] => 10000 [Debit] => 0 [Credit] => 0 ) [MaidsID] => Array ( [0] => 1 [1] => 3 [2] => 4))

    ================================================ =

    这不就是你想要的结果吗?

    【讨论】:

    • @Denis,您好,先生,您的回答最接近我的问题,但如果您不介意先生,结果应该是:Array ([0] => Array ( [MaidID] => 14 [现金] => 10000.00 [借方] => 0 [贷方] => 0 [MaidsID] => Array([0] => 13 [1] => 41) ) )
    • @Dennis,先生,请再次查看我的问题。非常感谢。
    • 替换:$c = array_merge($b, $MaidsID); 为:$c = array_merge($b[0], $MaidsID); $c = array ($c);
    【解决方案3】:

    看看这个。也许这可以帮助你。

    $result = array_merge($array1, $array2);

    【讨论】:

    • @Dennis Omeri,您好,先生,谢谢您的回答,但我需要添加名为 [MaidsID] 的新密钥,指向 Owned Maid 列表。谢谢楼主
    猜你喜欢
    • 2014-01-31
    • 2011-01-07
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多