douwen2072 2016-11-16 21:44
浏览 26
已采纳

比较两个数组(库存)

For a cars company (Just an example) I need to automate the stock inventory:

$purchase_array = array("Lamborghini" => "5", "Ferrari" => "4", "Bugatti" => "3", "McLaren" => "2", "Fiat" => "10", "Mazda" => "20");

$sales_array = array("Lamborghini" => "1", "Ferrari" => "2", "Bugatti" => "3");

I want to have as results this array:

$stock_array = array("Lamborghini" => "4", "Ferrari" => "2", "Bugatti" => "0", "McLaren" => "2", "Fiat" => "10", "Mazda" => "20");

First I looked for the common cars:

$common_cars = array_keys(array_intersect_key($purchase_array, $sales_array));
foreach ($common_cars as $common_car) {
.....
}

buy I couldn't finish it.

Any help will be appreciated. Thanks in advance

  • 写回答

1条回答 默认 最新

  • dougu9895 2016-11-16 22:00
    关注

    You could do something similar to this. If you wanted to preserve the purchase_array you could copy the array to another var.

    N.B. If you could retrieve/store the quantity as intergers you can be sure when you loop over the items you wont get an unexpected result

    $aPurchaseArray = array("Lamborghini" => 5, "Ferrari" => 4, "Bugatti" => 3, "McLaren" => 2, "Fiat" => 1", "Mazda" => 2");
    
    $aSalesArray = array("Lamborghini" => 1, "Ferrari" => 2, "Bugatti" => 3);
    
    // foreach sales item, using the key as the name and value as quantity sold
    foreach($aSalesArray as $sProductName => $iQuantitySold){
    
        // if the product name exists in the target reduce its quantity
        if(isset($aPurchaseArray[$sProductName])){
            $aPurchaseArray[$sProductName] - $iQuantitySold;
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型