Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] gdzie jest blad? petla FOR
pawelek14
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 5.08.2006

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


co nalezy poprawic w ponizszym kodzie?wyswietla

1 2 2 2 5

czyli zamiast tych liczb ktorych nie ma podaje ostatnia pobrana liczbe i skraca liczbe wyszukiwanbych liczb o te liczby ktore sa pominiete w ciagu nasterpujacyhch po sobie liczb :/


  1. <? 
  2. $awans='1,2,5,6,7,8'; 
  3.  
  4. $a0 = explode(',',$awans);  
  5. for($a=0,$q=count($a0);$a<$q;$a++) {
  6. if (in_array($a,$a0)) { 
  7. $kolor=$a;  
  8. }; 
  9. echo"n<b>$kolor </b>n"; 
  10. }; 
  11. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Ale co chcesz osiągnąć?
Bo teraz jest tak, że p[o prostu, gdy wartości nie ma w tablicy, to wartosc zmiennej $kolor się nie zmienia - stąd takie wyniki.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
byq_pl
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 19.02.2004
Skąd: z piekla

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


Witam smile.gif
Myslę, że o to Ci chodziło:

  1. <?php
  2. $awans='1,2,5,6,7,8'; 
  3.  
  4. $a0 = explode(',',$awans);  
  5. for($a=0,$q=count($a0);$a<$q;$a++) {
  6. if (in_array($a,$a0)) { 
  7. $kolor=$a;
  8. echo"n<b>$kolor </b>n";
  9. }; 
  10. };
  11. ?>


--------------------
"Wyobraźnia jest ważniejsza od wiedzy." - Albert Einstein
Go to the top of the page
+Quote Post
pawelek14
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 5.08.2006

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


i tak i nie o to chodzila
otoz juz fajnie bo pomija te wartosci ktorych nie ma, natomiast nie wypisuje wszystkich bedacych w $awans, a dokladnie wypisuje 3 wartosci.

1,2,5

wydaje mi sie ze ze funkcja count liczy ze ma byc 6 wartosci (1,2,5,6,7,8) ale to co jest miedzy 2 a 5 w $awans nie jest pomijane tylko liczone i 6 liczonych wartosci jest brane a nie 6 wyswietlonych
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To użyj pętli foreach zamiast for - będzie prościej.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Napisz może slownie pełnymi zdaniami co chcesz osiągnąć, bo te kody działają.
Tylko wygląda na to że podane kody działają, ale inaczej niż się tego spodziewasz.
Może nie do końca wiesz jak to działa i czego chcesz.
Go to the top of the page
+Quote Post
piwoszeq
post
Post #7





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


mozesz uzyc
  1. <?php
  2. print_r($awans);
  3. ?>


albo mozesz tak (nie wiem czy o to Ci chodzilo)
  1. <?php
  2. $awans='1,2,5,6,7,8';
  3. $a0 = explode(',',$awans);
  4. foreach($a0 as $key)
  5. {
  6. echo"<b>$key </b>";
  7. }
  8. ?>


Ten post edytował piwoszeq 10.08.2006, 21:04:03
Go to the top of the page
+Quote Post
pawelek14
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 5.08.2006

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


dziekuje slicznie
wlasnie o to foreach mi chodzila
teraz chodzi elegancko
dzieki wielkie
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 Aktualny czas: 21.08.2025 - 13:33