Ciao a tutti, sto scrivendo una funzione per validare i dati isneriti in un form e, mi sono bloccato qui! e non riesco a capire perchè

ecco cosa accade praticamente :

quando invio i dati, $numeri è un array che contiene tutti i dati che devono essere solo numerici...e tranne 3 devono essere tutti di almeno un carattere

quindi ho 6 valori e 3 possono essere anche nulli.

quelli che possono essere nulli sono il 3 il 4 e il 5 dell'array...

ecco il codice, qualcuno sa trovarmi l'errore?

codice:
for($i=0;$i<count($numeri);$i++) {
	if( is_numeric($numeri[$i]) && $risultato && ( strlen($numeri[$i])>0 || ( $i==2 || $i==3 || $i==4 ) ) ) {
      $risultato = true;
	}
    else {
	  echo strlen($numeri[$i])." ".$i."
";;
	  if($risultato)
	    $_SESSION['erroredaticliente']=$numeri[$i];
      $risultato = false;
	}
  }
$_SESSION['erroredaticliente'] mi restituisce ovviamente gli errori sui campi che inserisco vuoti (se li riempio va tutto bene) quindi l'errore sta sicuramente qui:

codice:
( strlen($numeri[$i])>0 || ( $i==2 || $i==3 || $i==4 ) )
ma proprio non capisco perchè :-|

grazie a tutti