ho un in_array che mi sta facendo disperare. So che la funzione non cerca in più livelli di profondità, ma il dato che interessa sta nel primo livello, quindi dovrebbe funzionare, no?
io ho un'array così strutturato (risultato del print_r):
e poi ho piazzato un controllo del genere:codice:Array ( [265358] => Array ( [mod.1] => Array ( [0] => Basic Line [1] => Verniciato in colori a richiesta [2] => 500,00 € ) [mod.2] => Array ( [0] => Executive Line [1] => Verniciato [2] => 690,00 € ) [mod.3] => Array ( [0] => Executive Line [1] => Verniciato con oleoresina trasparente [2] => 1000,00 € ) ) [230664] => Array ( [mod.1] => Array ( [0] => Basic Line [1] => Verniciato in colori a richiesta [2] => 2600,00 € ) [mod.2] => Array ( [0] => Executive Line [1] => Verniciato [2] => 3370,00 € ) [mod.3] => Array ( [0] => Executive Line [1] => Verniciato con oleoresina trasparente [2] => 3920,00 € ) ) ...)
e il risultato che ne ho è la scritta:Codice PHP:if (!in_array($codice,$arrayMobili)){
die( "il codice [b]{$codice}[/b] dell'articolo non risulta regstrato nel nostro gestionale" );
}
il codice 230664 dell'articolo non risulta regstrato nel nostro gestionale
nonostante, potete ben vedere il codice esista.
Quindi, pensando che il problema fosse la funzione in_array, ho preso ed applicato quest'altra funzione da php.net:
ma le cose non cambiano! il risultato è sempre negativoCodice PHP:function deep_in_array($value, $array, $case_insensitive = false){
foreach($array as $item){
if(is_array($item)) $ret = deep_in_array($value, $item, $case_insensitive);
else $ret = ($case_insensitive) ? strtolower($item)==$value : $item==$value;
if($ret)return $ret;
}
return false;
}
![]()
la variabile $codice la recupero da una sessione, ed è valorizzata correttamente, altrimenti non la vedrei nemmeno nel die(), quindi non saprei quale altro problema ci sia.
Sapete darmi una mano? Grazie mille a tutti!![]()

Rispondi quotando
