Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Porównanie dwóch tablic
rafal75
post 12.05.2021, 20:07:10
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 8.05.2021

Ostrzeżenie: (0%)
-----


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

Ten post edytował rafal75 12.05.2021, 20:07:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Pyton_000
post 13.05.2021, 10:36:41
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:58