array+foreach da semplificare

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho un array contenente dei valori, immetto da form un valore, voglio sapre se il valore immesso è uguale ad uno dei valori della'array o compreso tra due valori o se non esiste.
ho fatto questo script

PHP:
<?php
$arr=array("primo"=>"A","secondo"=>"D","terzo"=>"F","quarto"=>"H","quinto"=>"L");
$trKey=array();
$trVal=array();
$valore="G";//poi questo valore sarà immesso da form
$conta=0;
foreach ($arr as $key => $val) {//cilo l'array e trasferisco i valori
	$trKey[$conta]=$key;
	$trVal[$conta]=$val;
	$conta++;
}//fine foreach
$quanti=sizeof($trKey);
echo "ci sono $quanti valori <br>";
for($k=0; $k<($quanti-1);$k++){
	if($valore==$trVal[$k]){
		$key1=$trKey[$k];
		$testo="il valore $valore corrisponde a $key1 <br>";
		break;
	}elseif($valore==$trVal[$k+1]){
		$key2=$trKey[$k+1];
		$testo="il valore $valore corrisponde a $key2 <br>";
		break;
	}elseif($valore>$trVal[$k] && $valore<$trVal[$k+1]){
		$key1=$trKey[$k];
		$key2=$trKey[$k+1];
		$testo="il valore $valore è compreso tra $key1 e $key2 <br>";
		break;
	}else{
		$testo="il valore non esiste <br>";
	}//fine if 
}//fine for
echo $testo;
?>

qualche buon'anima sa se posso semplificarlo?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
per controllare se un valore è presente in un array potresti utilizzare la funzione in_array() senza bisogno di un ciclo foreach.