Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Cześć wspólna dwóch tablic.. nastepnie największą wartość z tej czesci wspólnej..
Forum PHP.pl > Forum > Przedszkole
kukix
Witam.

Mam tablice wygenerowaną wcześniej do pliku php ($array_z_pliku).

Mam również zmienną zawierająca numerki oddzielone przecinkami: $dane_do_sprawdzenia = '2,98,18'; (czasami zawiera jedną liczbę, bez przecinków)

Potrzebuje teraz sprawdzic, czy numerki te oddzielone przecinkami istnieją w tablicy $array_z_pliku.

Jeżeli istnieje w niej wiecej niz jeden z numerków, to potrzebuje sprawdzic, który z tych numerków ma przypisaną największa liczbę w tablicy $array_z_pliku.

  1. $array_z_pliku=array (
  2. '1' => '2.00',
  3. '10' => '0.00',
  4. '11' => '0.00',
  5. '12' => '5.00',
  6. '13' => '0.00',
  7. '14' => '20.00',
  8. '15' => '0.00',
  9. '16' => '0.00',
  10. '17' => '30.00',
  11. '18' => '0.00',
  12. '19' => '40.00',
  13. '2' => '1.00',
  14. '20' => '3.00',
  15. '21' => '5.00',
  16. '22' => '6.00',
  17. '23' => '0.00',
  18. '24' => '0.00',
  19. '25' => '0.00',
  20. '26' => '0.00',
  21. '27' => '0.00',
  22. '28' => '0.00',
  23. '29' => '0.00',
  24. );
  25.  
  26. $dane_do_sprawdzenia = '2,98,18';
  27.  
  28. //rozbite przez explode()
  29. $array_z_explode=array (
  30. '0' => '2',
  31. '1' => '98',
  32. '2' => '18',
  33. );



Mógłbym wykryć przecięcie tablic funkcją array_intersect() ale w jednej chodzi o wartośc a w drugiej o klucz tablicy :/

Myślałem, żeby zrobić to tak:
  1. $wynik = explode(",", $dane_do_sprawdzenia);
  2.  
  3. foreach($wynik as $id_pozycji) {
  4.  
  5. //i tutaj sprawdzam:
  6. $najwyzsza wartosc = 0;
  7. if (isset($array_z_pliku[$id_pozycji])) {
  8.  
  9. if ($najwyzsza wartosc < $array_z_pliku[$id_pozycji]) {
  10. $najwyzsza wartosc < $array_z_pliku[$id_pozycji]
  11. }
  12.  
  13. }


tak otrzymam największą wartość, jest to jednak troszke na około :/ czy można zrobić to inaczej używając mnie j kodu?
Lombi
  1. $array_z_pliku=array(
  2. '1' => '2.00',
  3. '10' => '0.00',
  4. '11' => '0.00',
  5. '12' => '5.00',
  6. '13' => '0.00',
  7. '14' => '20.00',
  8. '15' => '0.00',
  9. '16' => '0.00',
  10. '17' => '30.00',
  11. '18' => '0.00',
  12. '19' => '40.00',
  13. '2' => '1.00',
  14. '20' => '3.00',
  15. '21' => '5.00',
  16. '22' => '6.00',
  17. '23' => '0.00',
  18. '24' => '0.00',
  19. '25' => '0.00',
  20. '26' => '0.00',
  21. '27' => '0.00',
  22. '28' => '0.00',
  23. '29' => '0.00',
  24. );
  25. $dane_do_sprawdzenia='2,98,18';
  26. $array_z_explode = explode(',',$dane_do_sprawdzenia);
  27. foreach($array_z_explode as $v)
  28. {
  29. $tmp[$v] = $array_z_pliku[$v];
  30. }
  31. arsort($tmp);
  32. print_r($tmp);


Dalej to już twoja fantazja smile.gif
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.