Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] wykluczenie ciągu znaków
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


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.
Go to the top of the page
+Quote Post
Szeszek1992
post
Post #2





Grupa: Zarejestrowani
Postów: 117
Pomógł: 29
Dołączył: 20.05.2009

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


array_filter
Go to the top of the page
+Quote Post
emtiej
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


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
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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
Go to the top of the page
+Quote Post
lnn
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


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:/
Go to the top of the page
+Quote Post
Szeszek1992
post
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 29
Dołączył: 20.05.2009

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


  1. foreach($selected as $hit) {
  2. if(is_integer($hit)) echo $hit."<br />";


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



Ten post edytował Szeszek1992 27.01.2010, 22:46:07
Go to the top of the page
+Quote Post
emtiej
post
Post #7





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


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 ^^

Go to the top of the page
+Quote Post
lnn
post
Post #8





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


zarowno 1 jak i drugi sposob zwraca mi nic :| ..
Go to the top of the page
+Quote Post
Szeszek1992
post
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 29
Dołączył: 20.05.2009

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


  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.
Go to the top of the page
+Quote Post
lnn
post
Post #10





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


dziwna sprawa, bo mi wogole petla zanika :|
Go to the top of the page
+Quote Post
Szeszek1992
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 29
Dołączył: 20.05.2009

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


Zmień z is_integer na is_numeric.
Go to the top of the page
+Quote Post
lnn
post
Post #12





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


ok teraz dziala jak powinno (IMG:style_emoticons/default/smile.gif) jeszcze zobacze przy zapisie do db (IMG:style_emoticons/default/winksmiley.jpg) jak cos to napisze jeszcze tu (IMG:style_emoticons/default/smile.gif)
+POMOGŁ
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 12:59