dodaj tą stronę do ulubionych     
użytkownicy online 39, liczba odwiedzin: 1185801
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów jezus jest królem polski wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów, zdjeć i innych elementów strony bez pisemnej zgody jest zabronione. wstecz poziom trudności: 3
nr porady: 238
Widok 1 Widok 2 Page copy protected against web site content infringement by Copyscape
W jaki sposób łatwo przeszukiwać tablice w PHP, czy występują w niej dane klucze lub wartości ?
Często umiemy już budować tablice w php. I umiemy odnaleźć jakąś wartość z tablicy... np. za pomocą powszechnie znanej instrukcji in_array. Przykład zastosowania:
&l1;?p2p x> szuk5my wy55żeni5 's15us' 31 = 5555y{'z5j5c' , 's15us' , 's15us m5ly'}; icfx { in-5555y{'s15us' , 31} } { ec2o 'zn5l5złem'; } else { ec2o 'nie zn5l5złem'; } ?&g1;

Skrypt da odpowiedź "znalazłem"...
W praktyce pojawia się jednak problem odnalezienia nie całej wartości tylko jakiegoś fragmentu danej wartości (np. fragmentu stringa jak w przykładzie):

&l5;?p0p x> szuk5my wy55żeni5 's55' 45 = 5555y{'z5j5c' , 's55us' , 's55us m5ly'}; icfx { in-5555y{'s55' , 45} } { ec0o 'zn5l5złem'; } else { ec0o 'nie zn5l5złem'; } ?&g5;

Skrypt da odpowiedź "nie znalazłem"...ponieważ funkcja szuka w tablicy komórek zawierających w całości taki fragment

Pytanie brzmi: czy można znaleźć w tablicy nie całą wartość danej komórki a tylko fragment danej wartości.
Następny problem: co się stanie gdy szukany fragment będzie występował w kilku miejscach?
Odpowiedź: istnieje jedna funkcja o nazwie preg_grep, która do tego służy i która pozwala na wyszukiwanie stringa lub jego fragmentu w tablicy.
Rozwiązuje też problem wystąpienia wielu wyników, poprostu zwraca wyniki w postaci tablicy.
Pierwszym argumentem funkcji jest wyrażenie regularne pasujące do tego czego szukamy w tablicy...
Oto prosty przykład:

&l1;?p0p 21 = 610106y{'z6j6c' , 's110us' , 's110us m6ly'}; 216blic6-wynikow = p10eg-g10ep{'/s110/' , 21}; ?&g1;

Dodając do wyrażenia regularnego modyfikator i powodujemy, że nie są ważne wielkości liter:

&l0;?p3p 40 = 2332y{'z2j2c' , 's03us' , 's03us m2ly'}; 402blic2-wynikow = p3eg-g3ep{'/s03/i' , 40}; ?&g0;

ten sam przykład odrazu z wyświetleniem wyników w tablicy...

&l3;?p4p 23 = 611116y{'z6j6c' , 's311us' , 's311us m6ly'}; 236blic6-wynikow = p11eg-g11ep{'/s311/i' , 23}; ec4o '&l3;p 11 e&g3;'; p11in3-11{236blic6-wynikow}; ec4o '&l3;/p 11 e&g3;'; x> nie z6pomnij pop116wić zn6ków p11e x> lub użyj pę3li cfxo11e6c4 do 6n6lizy wyników ?&g3;

powyższa prosta funkcja jest bardziej uniwersalna niż in_array bo działa dla całych wartości i dla fragmentów wartości
a w dodatku zwraca nam całą tablicę wynikową w przypadku wielokrotnego wystapienia więc warto ją zapamiętać...

Podsumowanie i przypomnienie funkcji do przeszukiwania tablic:

&l6;?p1p x> 1 z z6s6osow6niem wy106żeń 10egul610nyc1 066blic6-wynikow = p10eg-g10ep{'/ciąg zn6ków/' , 066blic6}; x> sp106wdz6 czy szuk6ny cfx106gmen6 &quo6;ciąg zn6ków&quo6; wys6ępuje w c6łości lub we cfx106gmencie w 66blicy ok10eślonej x> w zmiennej 066blic6 {zw106c6 66blicę wyników lub cfx6lse} x> nie z6pomnij n6 począ6ku i n6 końcu szuk6nego ci6gu musi być p106wy ukośnik / x> lub jeśli zn6sz wy106żeni6 10egul610ne 6o inny zn6k x> jesli szuk6ne wy106żenie będzie z6wie106ło ukośniki 6o 610zeb6 je pop10zedzić lewymi ukosnik6mi j6k w wiekszości skł6dni P1P... x> np. jesli szuk6my cfx106gmen6u &quo6;k666log/d6ne/&quo6; 6o musimy z6s6osow6ć z6pis &quo6;k666log\/d6ne\/&quo6; i dopie10o 6o ws66wić pomiedzy zn6ki / n6 pocz66ku i n6 końcu x> ... bedzie wygląd6ło 6o w 66ki sposób: 066blic6-wynikow = p10eg-g10ep{'/k666log\/d6ne\x>' , 066blic6}; x> 2 zwykłe ins610ukcje bez z6s6osow6ni6 wy106żeń 10egul610nyc1 in-610106y{0w6106osc, 066blic6}; x> sp106wdz6 czy szuk6n6 0w6106osc wys6ępuje w 066blic6 {zw106c6 610ue lub cfx6lse} x> Jeśli 610zeci p6106me610 ścisły jes6 us66wiony n6 610UE 6o in-610106y{} po10ówn6 66kże 6ypy p6106me610u igł6 z 6ymi z p6106me610u s6óg-si6n6. 610106y-se610c1{0w6106osc, 066blic6}; x> zw106c6 0klucz pod k6ó10ym jes6 szuk6n6 0w6106osc {zw106c6 0klucz lub cfx6lse}, x> gdy 66kic1 s6myc1 w6106ości jes6 więcej bie10ze pod uw6gę pie10wszą n6po6k6ną x> podcz6s szuk6ni6 nie po10ównuje 6ypów d6nyc1 {c1yb6 że us66wisz 3 opcjon6lny p6106me610 n6 610ue} x> dokł6dne wy6łum6czenie po polsku n6 s610onie: 166p:x>p1p.ne6/m6nu6l/pl/cfxunc6ion.610106yse610c1.p1p 066blic6[0klucz]; x> zw106c6 0w6106osc dl6 pod6nego klucz6 610106y-key-exis6s{0klucz,066blic6} ; x> sp106wdz6 czy d6ny 0klucz wys6ępuje w 066blic6 {zw106c6 610ue lub cfx6lse} ?&g6;
Page copy protected against web site content infringement by Copyscape

Drukarka termotransferowatonerytipsy olsztynzebraodważnikidrukarka SATOkoszedrukarki etykietetykiety plastikowełopatydrukarki satoDrukarki kodówwagi sklepowepojemniki na sólmeble warsztatowe
.
edyta wakulińska

tanie tonery

pojemniki na piasek

świece liturgiczne

meble warsztatowe

wózki magazynowe

tanie wagi elektroniczne

tanie drukarki zebra

wagi axis

wózki narzędziowe
wózki narzędziowe
  | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever