Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Źle iteruje po pętli
Forum PHP.pl > Forum > Przedszkole
Look85
Program ma zmieniać cyfry arabskie na rzymskie.
Mecze się już z tym chwile i nie wiem dlaczego nie chce to działać, np. dubluje cyfry tak jak tutaj 48487 zamiast 487 albo cyfry 2 w ogóle nie zamienia na "II".
Wynik zwraca taki:
4
IIIIII
4848vII
I23238
III005I
I
4646vIIvII8vII


  1. <?php
  2. $num = array("4", "33", "487", "123238", "1110051", "1", "467787");
  3. $amo = count($num);
  4.  
  5. for($i=0; $i<$amo; $i++){
  6.  
  7. $dlrekordu = strlen($num[$i]);
  8. $arrnum= $num[$i];
  9.  
  10. for($j=0; $j<$dlrekordu; $j++){
  11.  
  12. if($arrnum[$j]=="1"){
  13. echo str_replace("1", "I", $arrnum);
  14. break;
  15. }
  16. elseif($arrnum[$j]=="2"){
  17. echo str_replace("2", "II", $arrnum);
  18. break;
  19. }
  20. elseif($arrnum[$j]=="3"){
  21. echo str_replace("3", "III", $arrnum);
  22. break;
  23. }
  24. elseif($arrnum[$j]=="7"){
  25. echo str_replace("7", "vII", $arrnum);
  26. break;
  27. }
  28. else {
  29. echo $arrnum[$j];
  30.  
  31. };
  32.  
  33.  
  34. };
  35. echo "<br/>";
  36.  
  37.  
  38. }
  39. ?>
nospor
Zdziebko krocej i mniej szans na bledy wink.gif

  1. $num = array("4", "33", "487", "123238", "1110051", "1", "467787");
  2.  
  3. $replaceFrom = [1, 2, 3, 7];
  4. $replaceTo = ['I', 'II', 'III', 'VII'];
  5.  
  6. foreach ($num as $n) {
  7.  
  8. echo str_replace($replaceFrom, $replaceTo, $n);
  9. echo "\n";
  10. }


zas co do twojego kodu z pierwszego posta:
zrobiles dwa bledy:
1) robiles str_replace na calym tekscie zamiast tylko na danym kawalku
2) robiles break zamiast continue. break konczy petle od razu temu np. gdy zamienilo ci 1 to do 2 juz nie dochodzlo bo wychodziles z petli
Look85
Wielkie dzięki!
Sporo czasu wczoraj spędziłem szukając czemu to nie działa, co ciekaw dodałem "echo str_replace("3", "III", $arrnum[$j])" oraz continue ale jakoś mi nie wychodziło.
Wiem ze można prościej ale tutaj może być na około bo chodzi wyłącznie o naukę i wyczajenie jak o wszystko działa 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.