Grazie per avermi risposto,
Sembra funzionare e bene anche ! Ho fatto una modifica ho aggiunto un foreach visto che in questo caso mi riferivo all'array fascicolo che conteneva tutti i libri,
Codice PHP:
$fascicolo1 = array( 'libro1' => '1 aa 4 aa 8',
'libro2' => '2 aa 4 aa 8',
'libro3' => '2 o 4 8 ',
'libro4' => '1 o 8 o 16 o 24'
);
$pattern1 = "/^([a-zA-Z]+\s*(\d+)\s*)+$/";
$pattern2 = "/([a-zA-Z]+\s*(\d+)\s*)+?/";
foreach($fascicolo1 as $ok){
$finale = 'o'.$ok;
if (preg_match($pattern1,$finale) == 1)
{
print "$ok funziona<br/>";
preg_match_all($pattern2,$finale,$valore1);
// $valore1[2] contiene i numeri - inverto l'ordine dell'array per avere sempre l'ultimo numero al primo posto
$arrayNumeri = array_reverse($valore1[2]);
// controllo se l'ultimo è il doppio del penultimo
if (isset($arrayNumeri[1]) && $arrayNumeri[0] == ($arrayNumeri[1] * 2))
{
print "Ultimo doppio del penultimo.<br/>";
}
else
{
print "Ultimo non doppio del penultimo.<br/>";
}
var_dump($arrayNumeri);
}
else
{
print "$ok non funziona <br> ";
}
}
Mi è salito un dubbio ENORME, potrei aggiustarlo usando il metodo del modulo come avevo fatto, però se io devo creare una funzione, e quindi so benissimo che essendo una funzione non devo fermarmi sul fatto che possa essere utilizzato solo per i libri ma per qualunque cosa.
Quindi mettiamo caso che io abbia sempre un altro fascicolo, con dei titoli dei libri....MA questi titoli contengono 20 numeri, com'è possibile che io debba andare nel codice e CITARE la posizione 20 del numero... mi sono spiegato? Cioè se io ho 2 mila numeri non posso permettermi di andare a mettere nel IF ogni volta $arraynumero[7] .... $arraynumero[8] ecc...
Questa cosa è tosta che non riesco a capire quale potesse essere un metodo, appunto perchè è una funzione
Ti ringrazio che mi segui