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 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数