Sara Z Sara Z - 21 days ago 7
PHP Question

Compare two arrays (Stock inventory)

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

Answer

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;
    }

}