20. 07. 2007. | #1 |
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Elegantnije filtriranje niza
Treba mi da isfiltriram niz prema sadrzaju nekog od polaj u nizu. Napravio sam jednostavnu funkciju koja to radi ali mi se ne svidja pretrzivanje peske posto na vecem nizu to moze da pojede vreme. Moze li ovo bolje?
Evo koda i primera: Kôd:
<?php // // filtrira niz $p_array, tako da vrati novi niz koji sadrzi samo // elemente koji u polju $p_key_name imaju vrednost $p_value // function filterArray ($p_array, $p_value, $p_key_name) { foreach ($p_array as $m_item) { if ($m_item[$p_key_name] == $p_value) { $m_result[] = $m_item; } } return $m_result; } $m_data[0]['type'] = 'a'; $m_data[0]['name'] = 'data0'; $m_data[1]['type'] = 'b'; $m_data[1]['name'] = 'data0'; $m_data[2]['type'] = 'c'; $m_data[2]['name'] = 'data0'; $m_data[3]['type'] = 'a'; $m_data[3]['name'] = 'data0'; $m_data[4]['type'] = 'b'; $m_data[4]['name'] = 'data0'; $m_data[5]['type'] = 'c'; $m_data[5]['name'] = 'data0'; $m_data[6]['type'] = 'a'; $m_data[6]['name'] = 'data0'; $m_data[7]['type'] = 'b'; $m_data[7]['name'] = 'data0'; $m_data[8]['type'] = 'c'; $m_data[8]['name'] = 'data0'; $m_data[9]['type'] = 'a'; $m_data[9]['name'] = 'data0'; $m_data_a = filterArray ($m_data, 'a', 'type'); $m_data_b = filterArray ($m_data, 'b', 'type'); $m_data_c = filterArray ($m_data, 'c', 'type'); print_r ($m_data_a); echo "<br>"; print_r ($m_data_b); echo "<br>"; print_r ($m_data_c); echo "<br>"; ?>
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net |
20. 07. 2007. | #2 |
Domagoj Horvat
Expert
|
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
20. 07. 2007. | #3 |
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Znam za to, ali je ovde kvaka sto treba da se proslede parametri koji su kljuc za filtriranje a array_filer ocekuje callbackfunkciju koja unapred zna sta treba da radi.
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net |
20. 07. 2007. | #4 |
Domagoj Horvat
Expert
|
Kôd:
$m_data=array(); $m_data[0]['type'] = 'a'; $m_data[0]['name'] = 'data0'; $m_data[1]['type'] = 'b'; $m_data[1]['name'] = 'data0'; $m_data[2]['type'] = 'c'; $m_data[2]['name'] = 'data0'; $m_data[3]['type'] = 'a'; $m_data[3]['name'] = 'data0'; $m_data[4]['type'] = 'b'; $m_data[4]['name'] = 'data0'; $m_data[5]['type'] = 'c'; $m_data[5]['name'] = 'data0'; $m_data[6]['type'] = 'a'; $m_data[6]['name'] = 'data0'; $m_data[7]['type'] = 'b'; $m_data[7]['name'] = 'data0'; $m_data[8]['type'] = 'c'; $m_data[8]['name'] = 'data0'; $m_data[9]['type'] = 'a'; $m_data[9]['name'] = 'data0'; print_r(array_filter($m_data, create_function('$nesto', 'return ($nesto[type]=="a") ? 1 : 0;')));
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
20. 07. 2007. | #5 |
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Krvavo
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
php f-ja za merge 2 niza | ivanhoe | PHP | 5 | 02. 11. 2009. 21:06 |
relacija izmedju elemenata dva niza | gope | Sva početnička pitanja | 3 | 22. 04. 2009. 17:00 |
Vrednosti niza kao argumenti funkcije | salebab | PHP | 10 | 15. 10. 2008. 12:29 |
Filtriranje nezeljenih atributa u html-u | dinke | Regular expression i htaccess | 10 | 10. 03. 2007. 22:20 |
vracanje niza iz funkcije | bojan_bozovic | PHP | 4 | 06. 02. 2006. 10:23 |