Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wykluczenie ciągu znaków
Forum PHP.pl > Forum > Przedszkole
lnn
witam

mam pytanie, poszukuje jakiejs funkcji ktora przy odczycie z tablicy wykluczy mi jakas wartosc, lub najlepiej kilka, po prostu chce zapisywac same nr z odczytanej tablicy.
Szeszek1992
array_filter
emtiej
pętla + eregi (w eregi wyrażenie regularne pasujące tylko dla ciagu liczb) jeżeli pasuje element tablicy zostaje, a jeżeli nie no to unset($tablica[klucz]), w ten sposób przefiltrujesz swoją tablicę i usuniesz nieprawidłowe jej elementy
piotrooo89
Cytat(emtiej @ 27.01.2010, 22:26:41 ) *
eregi (w eregi wyrażenie regularne pasujące tylko dla ciagu liczb)


no Ty sobie chyba żartujesz... eregi to sie stosowało jakieś 50 lat temu... a co czytamy w manualu?

Cytat
Ta funkcja jest PRZESTARZAŻŁA od PHP 5.3.0 i USUNIĘTA w PHP 6.0.0. Używanie tej funkcji nie jest zalecane.


teraz tylko funkcje PCRE
lnn
chodzi o to ze mam nastepujacy problem, podczas odczytywania z tablicy, które checkboxy zostały zaznaczone, wyskakuje mi również nazwa przycisku, ktory przechodzi o krok dalej:

  1. //tu odbieram zserializowane dane z $_POST i zapisuje w sesji
  2. $_SESSION['etap_4'] = serialize($_POST);
  3.  
  4. // nastepnie tworze zmienna z tablica z odserializowanymi danymi i robie petle
  5.  
  6. $selected = unserialize($_SESSION['etap_4']);
  7. foreach(unserialize($_SESSION['etap_4']) as $k =>$v) {
  8. if(preg_match("/chk-/",$k) != 0) {
  9. $temp = explode("chk-",$k);
  10. $selected[]=$temp[1];
  11. }
  12. }
  13. if(count($selected) != 0) {
  14. // i teraz tablica $selected przechowuje numery zaznaczonych checkboxów, sprawdźmy:
  15. foreach($selected as $hit) {
  16. echo $hit."<br />";
  17. }
  18. }

problem tkwi w tym ze zserializowany $_POST zbiera mi wszystkie pola z formularza i tworzy tablice ich,
i tak oto mam efekt dzialania petli taki:
CODE
on
on
on
on
Przejdz dalej
7
11
13
22


jak to wykluczyc okreslone slowa z tablicy? ;/ nie bardzo wiem jak to zgrac z tym co juz mam:/
Szeszek1992
  1. foreach($selected as $hit) {
  2. if(is_integer($hit)) echo $hit."<br />";


albo zastosuj
  1. $selected=array_filter($selected, 'is_integer');

emtiej
piotrooo89 mój błąd mało zaglądam do manuala ogólnie bo wszystko czytam z książek w których jeszcze się ją opisuję. Niestety nauka programowania jest z tym trudna że cały czas wchodzi coś nowego i trzeba się sprężać żeby być na czasie, poza tym jestem dziś tak zmęczony że jak widzisz nie zauważyłem takiego dużego czerwonego napisu ^^

lnn
zarowno 1 jak i drugi sposob zwraca mi nic :| ..
Szeszek1992
  1. //tu odbieram zserializowane dane z $_POST i zapisuje w sesji
  2. $_SESSION['etap_4'] = serialize($_POST);
  3.  
  4. // nastepnie tworze zmienna z tablica z odserializowanymi danymi i robie petle
  5.  
  6. $selected = unserialize($_SESSION['etap_4']);
  7. foreach(unserialize($_SESSION['etap_4']) as $k =>$v) {
  8. if(preg_match("/chk-/",$k) != 0) {
  9. $temp = explode("chk-",$k);
  10. $selected[]=$temp[1];
  11. }
  12. }
  13.  
  14. $selected=array_filter($selected, 'is_integer');
  15. if(count($selected) != 0) {
  16. // i teraz tablica $selected przechowuje numery zaznaczonych checkboxów, sprawdźmy:
  17. foreach($selected as $hit) {
  18. echo $hit."<br />";
  19. }
  20. }

Funkcja filtrująca działa na pewno.
lnn
dziwna sprawa, bo mi wogole petla zanika :|
Szeszek1992
Zmień z is_integer na is_numeric.
lnn
ok teraz dziala jak powinno smile.gif jeszcze zobacze przy zapisie do db winksmiley.jpg jak cos to napisze jeszcze tu smile.gif
+POMOGŁ
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.