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):
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 poi ho piazzato un controllo del genere:
Codice PHP:
if (!in_array($codice,$arrayMobili)){
die( "il codice [b]{$codice}[/b] dell'articolo non risulta regstrato nel nostro gestionale" );
}
e il risultato che ne ho è la scritta:
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:
Codice 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;
}
ma le cose non cambiano! il risultato è sempre negativo
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!