douzhaocheng4533 2013-09-03 12:42
浏览 57
已采纳

PHP比较两个嵌套数组以获取新数组

I am trying to subtract parts of one nested array from another, but I'm having difficulty specifying the parts that I want to subtract as both values are numbers.

My arrays are, for example:

Array ( [0] => Array ( [id] => 43 [quantity] => 4 ) ) 
Array ( [0] => Array ( [id] => 43 [quantity] => 2 ) )

And after the subtraction I want the Result to be:

Array ( [0] => Array ( [id] => 43 [quantity] => 2 ) )

I'm using the following code to perform the subtraction, but I can't stop it from subtracting the id from itself:

foreach(array_keys($arrayA) as $id)
{
    foreach(array_keys($arrayA[$id]) as $type)
    {
        $newArray[$id][$type] = $arrayA[$id][$type] - $arrayB[$id][$type];
    }
}

print_r($newArray);

Could someone please tell me how I can just effect the [quantity] part of the array, without changing the [id]? With the code as it is I get:

Array ( [0] => Array ( [id] => 0 [quantity] => 2 ) )

Thanks in advance.

  • 写回答

1条回答 默认 最新

  • duanboniao5903 2013-09-03 12:52
    关注
    $ar1 = array(0 => array('id' => 43, 'quantity' => 4));
    $ar2 = array(0 => array('id' => 43, 'quantity' => 2));
    $new_array = array();
    
    foreach($ar1 as $key => $value)
    {
        $new_array[$key] = array('id' => $value['id'], 'quantity' => ($value['quantity'] - $ar2[$key]['quantity']));
    }
    

    Array 
    ( 
        [0] => Array 
            ( 
                [id] => 43 
                [quantity] => 2 
            ) 
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据