Piero V.

Where Clause con Array in PHP

Una delle più belle funzioni dei DB relazionali è senz’altro la “Where Clause”.

Però nei database di testo purtroppo non è presente ☹️

Ecco una funzione che serve per trovare da un array multidimensionale dei suoi valori o delle sue chiavi (ovvero ‘values’ o ‘key’ nel parametro $what) dicendo che valore ($value) si vuole trovare per quale chiave ($key).

È possibile limitare la ricerca a un numero di valori o a tutti i valori specificandola in $num.

La rilascio in pubblico dominio, ovvero potete farne quello che volete!

function whereClause($array, $key, $value, $num=-1, $what='values') {
	if(!is_array($array) || count($array)==0) return false;
	$r=array();
	$i=0;
	foreach($array as $k=>$v) {
		# TODO: Just equal?
		if($v[$key]==$value) {
			$r[]=($what=='keys') ? $k : $v;
			$i++;
			if($i>=$num && $num>0) break;
		}
	}
	return $r;
}