Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] listing zawartości z explode
kaszanka
post 13.02.2008, 21:44:31
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Hi,

Ja już chyba zgłupiałem dosłownie...

Za pomocą explode rozdzielam zawartość zmiennej która wygląda tak: name||name1 (zawsze jedna linia)
  1. <?php
  2. $rozdzielone = explode("||", $zawartosc);
  3. ?>

i liczę ile jest wartości rozdzielonych między || :
  1. <?php
  2. $ile_rozdzielonych = count ($rozdzielone);
  3. ?>
w tym przypadku wynikiem jest 2 lecz w przypadku innych $zawartosc wynik może być inny (z góry nie znany).
i teraz chcę zrobić listing w postaci:
  1. 1 = name
  2. 2 = name1
  3. ...
  4. 9 = name9
więc pisze:
  1. <?php
  2. $lp=0;
  3. for($i=0; $i<$ile_rozdzielonych; $i++){
  4. echo "Wynik: $lp++; = $rozdzielone[$i++])";
  5. }
  6. ?>
i nic z tego worriedsmiley.gif

Ten post edytował kaszanka 13.02.2008, 21:45:49
Go to the top of the page
+Quote Post
b_chmura
post 13.02.2008, 21:52:37
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


Cytat
  1. <?php
  2. $lp=0;
  3. for($i=0; $i<$ile_rozdzielonych; $i++){
  4. echo "Wynik: $lp++; = $rozdzielone[$i++])";
  5. }
  6. ?>


dwa razy zwiększasz zmienną $i, po co Ci zmienna $lp?


  1. <?php
  2. for($i=0; $i<$ile_rozdzielonych; $i++)
  3. {
  4. echo 'Wynik: '.$i.' = '.$rozdzielone[$i];
  5. }
  6. ?>


wystarczy
Go to the top of the page
+Quote Post
nowotny
post 13.02.2008, 21:54:39
Post #3





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Jak nie znasz z góry ilości elementów tablicy (i nie potrzebujesz ich znać) używaj pętli foreach...
  1. <?php
  2. foreach($rozdzielone as $element){
  3. echo $element;
  4. }
  5. ?>


Natomiast nie wiem co poniższy kod ma na celu... pomijając fakt że jest źle... :/
  1. <?php
  2. $lp=0;
  3. for($i=0; $i<$ile_rozdzielonych; $i++){
  4. echo "Wynik: $lp++; = $rozdzielone[$i++])";
  5. }
  6. ?>


Powinno być (chyba) tak:
  1. <?php
  2. for($i=0; $i<$ile_rozdzielonych; $i++){
  3. echo 'Wynik: '.$i.' = '.$rozdzielone[$i];
  4. }
  5. ?>


Ten post edytował nowotny 13.02.2008, 21:55:07
Go to the top of the page
+Quote Post
kaszanka
post 13.02.2008, 22:01:16
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


No i właśnie problem w tym, że pisząc jak mówicie;
  1. <?php
  2. for($i=0; $i<$ile_rozdzielonych; $i++){
  3. echo 'Wynik: '.$i.' = '.$rozdzielone[$i];
  4. }
  5. ?>
nie listuje każdego rozdzielonego name tylko zatrzymuje się na pierwszym.
Go to the top of the page
+Quote Post
nowotny
post 13.02.2008, 22:03:39
Post #5





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Tak to działa i nie ma bata... coś źle robisz... pokaż całość...
Go to the top of the page
+Quote Post
kaszanka
post 13.02.2008, 22:05:50
Post #6





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Jest ok, literówkę zrobiłem ;/ eh
Przepraszam i dziękuje smile.gif
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: 6.07.2025 - 02:24