Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Porównanie dwóch tablic
Forum PHP.pl > Forum > Przedszkole
rafal75
Prosił bym o pomoc.
Posiadam dwie tablice. Sprzedaż i zakup. Muszę sprawdzić dla każdego elementu "SKU" w tablicy zakupów, czy nastąpiła sprzedaż. Jeśli tak, to efektem tego powinna być nowa tablica $tmp, ze zmodyfikowanym stanem "count".
Z góry dziękuję za pomoc.

$boughtProducts = array(
array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
array("SKU"=>"0002", "count"=>8, "Joe"=>"43"),
array("SKU"=>"0003", "count"=>10, "Joe"=>"43")
);
$soldProducts = array(
array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
array("SKU"=>"0002", "count"=>2, "Joe"=>"43"),
array("SKU"=>"0003", "count"=>0, "Joe"=>"43")
);
$tmp= array(
array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
array("SKU"=>"0002", "count"=>6, "Joe"=>"43"),
array("SKU"=>"0003", "count"=>0, "Joe"=>"43")
);

Dla zainteresowanych. Rozwiązałem problem.

$boughtProducts = array(
array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
array("SKU"=>"0002", "count"=>8, "Joe"=>"43"),
array("SKU"=>"0003", "count"=>10, "Joe"=>"43")
);
$soldProducts = array(
array("SKU"=>"0003", "count"=>2, "Joe"=>"43"),
// array("SKU"=>"0002", "count"=>2, "Joe"=>"43"),
array("SKU"=>"0001", "count"=>5, "Joe"=>"43")
);


$items = count($boughtProducts);
$itemsb = count($soldProducts);
$result = $boughtProducts;
for($i = 0; $i < $items; $i++) {
$b=0;
if($result[$i]["SKU"] != $soldProducts[$b]['SKU']) {
for($b = 0; $b < $itemsb; $b++){
if ($soldProducts[$b]['SKU'] == $result[$i]["SKU"])
{
$result[$i]["count"] = ($boughtProducts[$i]['count'] - $soldProducts[$b]['count']);
}
}
}else{
$result[$i]["count"] = ($boughtProducts[$i]['count'] - $soldProducts[$b]['count']);
}
}
echo "<pre>";
print_r($result);
echo "</pre>";
Pyton_000
A może tak...
  1. <?php
  2. $boughtProducts = array(
  3. array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
  4. array("SKU"=>"0002", "count"=>8, "Joe"=>"43"),
  5. array("SKU"=>"0003", "count"=>10, "Joe"=>"43"),
  6. array("SKU"=>"0004", "count"=>10, "Joe"=>"43")
  7. );
  8. $soldProducts = array(
  9. array("SKU"=>"0001", "count"=>10, "Joe"=>"43"),
  10. array("SKU"=>"0002", "count"=>2, "Joe"=>"43"),
  11. array("SKU"=>"0003", "count"=>0, "Joe"=>"43")
  12. );
  13.  
  14. $bought = array_column($boughtProducts, 'count', 'SKU');
  15. $sold = array_column($soldProducts, 'count', 'SKU');
  16.  
  17.  
  18. $output = [];
  19. foreach($sold as $sku => $count) {
  20. $output[] = [
  21. 'SKU' => $sku,
  22. 'count' => $bought[$sku]-$sold[$sku],
  23. ];
  24. }
  25. var_dump($bought, $sold, $output);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.