Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] explode
Forum PHP.pl > Forum > Przedszkole
integer000
Witam

mam taki skrypt:
  1. <?php
  2. $wva = $_COOKIE["TestCookie"];
  3. $data=explode("*|*", $wva);
  4.  
  5. echo $data[0];
  6. echo $data[1];
  7. echo $data[3];
  8. ?>


odczytuje z cookie a następnie za pomocą explode dziele na kawałki...

Tylko teraz mam pytanie co do tej części kodu: "$data[0]" jeśli w nawiasie jest zero to w zmiennej tej będzie przechowywana pierwsza część wycięta z całego ciągu, jeśli będzie dwa to druga część. Iniby wszystko jest OK, tyle że ilość danych przechowywanych w cookie się zmienia i nie jestem w stanie przewidzieć czy wystarczy że zadeklaruje od $data[0] do $data[4], czy będzie potrzeba wykorzystać nawet $data[99].

Tak więc moje pytanie brzmi: jak zwiękrzać liczbę w nawiasie o jeden, tak aby wszystkie elemęty z cookie zostały wyświetlone questionmark.gif
macza
uzyj WHILE
  1. <?
  2. $licz=0;
  3. while(1=1){
  4. if($data[$licz]=''){ break; } //przerywa jezeli pusta $data[liczba]
  5. echo $data[$licz].'<br>';
  6. $licz=$licz+1;
  7. }
  8. echo 'Jest: '.$licz.';
  9. ?>
integer000
Cytat(macza @ 24.06.2006, 17:14 ) *
uzyj WHILE
  1. <?
  2. $licz=0;
  3. while(1=1){
  4. if($data[$licz]=''){ break; } //przerywa jezeli pusta $data[liczba]
  5. echo $data[$licz].'<br>';
  6. $licz=$licz+1;
  7. }
  8. echo 'Jest: '.$licz.';
  9. ?>


A dlaczego while(1=1){ ( jeden jest równe jeden) questionmark.gif
piotrekkr
moze tak :
  1. <?php
  2. $licz=0;
  3. while($data[$licz]!=''){
  4. echo $data[$licz].'<br>';
  5. $licz++;
  6. };
  7.  
  8. echo 'jest '.$licz;
  9. ?>


to to samo co tamto tylko moze latwiejsze do zrozumienia. Taamta petla w niskonczonosc by sie wykonywala bo 1 jest zawsze rowne jeden a petla przerywa sie w warynku
  1. <?php
  2. if($data[$licz]==''){ break; }
  3. ?>
tzn kiedy nie istnieje nastepny index. Najprawdopodobniej php by wygenerowalo blad ze nie ma takiego indexu

ale w gruncie rzeczy nie wiem po co takie kombinacje mozna przeciez zrobic
  1. <?php
  2. for($i=0;$i<count($data);$i++){
  3. echo $data[$i].'<br />';
  4. };
  5. echo ('jest '.($i-1))
  6. ?>
Ludvik
Ale kombinujecie...
  1. <?php
  2. foreach ($data as $element) {
  3. echo $element;
  4. }
  5. ?>
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.