Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd logiczny w funkcji.
Forum PHP.pl > Forum > PHP
Cypherq
Gdzie kryje się błąd logiczny w tej funkcji?

  1. <?php
  2. function PosortujId($wejscie1, $wejscie2)
  3. {
  4. $wyjscie = array();
  5. $pomoc = 0;
  6.  
  7.  
  8. for ($i = 0; $i >= 6; $i++)
  9. {
  10. if ($wejscie1[$i] == $wejscie2[0]->id)  
  11. {
  12. $wyjscie[$i] = $wejscie2[0];  
  13. }
  14.  
  15. if ($wejscie1[$i] == $wejscie2[1]->id)  
  16. {
  17. $wyjscie[$i] = $wejscie2[1];  
  18. }
  19.  
  20. if ($wejscie1[$i] == $wejscie2[2]->id)  
  21. {
  22. $wyjscie[$i] = $wejscie2[2];  
  23. }
  24.  
  25. if ($wejscie1[$i] == $wejscie2[3]->id)  
  26. {
  27. $wyjscie[$i] = $wejscie2[3];  
  28. }
  29.  
  30. if ($wejscie1[$i] == $wejscie2[4]->id)  
  31. {
  32. $wyjscie[$i] = $wejscie2[4];  
  33. }
  34.  
  35. if ($wejscie1[$i] == $wejscie2[5]->id)  
  36. {
  37. $wyjscie[$i] = $wejscie2[5];  
  38. }
  39.  
  40. if ($wejscie1[$i] == $wejscie2[6]->id)  
  41. {
  42. $wyjscie[$i] = $wejscie2[6];  
  43. }
  44.  
  45. }
  46.  
  47. //To jest zastosowane dla diagnostyki  
  48. print_r($wejscie1);
  49. echo '<br />';  
  50. print_r($wejscie2);
  51. echo '<br />';  
  52. print_r($wyjscie);  
  53. die();  
  54.  
  55. return $wyjscie;  
  56. }
  57. ?>


Dwa pierwsze "print_r" wskazują prawidłowe tablice, które dołączane są jako parametry funkcji. Pierwsza zawiera odpowiednio posortowane liczby które są numerami ID nie zapisanymi w porządku od najmniejszej do największej, tylko losowo. Druga zawiera obiekty klasy zawodnik. Jednym z pól tej klasy jest pole Id, zaznaczam, że numery id obiektów NA PEWNO pokrywają się z numerami id pierwszej tablicy.

Dlaczego więc funkcja zwraca $wyjscie jako pustą tablicę? Oczywiście po wyłączeniu die().
bartek00
To sie nie iteruje :

  1. <?php
  2. for ($i = 0; $i >= 6; $i++)
  3. ?>


Pozdrawiam
misiek172
for ($i = 0; $i >= 6; $i++)

bo jest większe od 6, a dziwne zeby liczylo DO 6 az i jest wiekszse lub równe 6 smile.gif, powinno być:

for ($i = 0; $i <= 6; $i++)
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.