Pogledajte određenu poruku
Staro 20. 07. 2007.   #1
Pedja
Predrag Supurović
Grand Master
 
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
Pedja is on a distinguished roadPedja is on a distinguished roadPedja is on a distinguished road
Default 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>";

?>
Pedja je offline   Odgovorite uz citat