Originariamente inviato da WillyLord
Ci sto lavorando, ma volevo sapere per curiosità:
'#\w+#'
a che serve?
http://it.php.net/manual/en/regexp.reference.php
Serve per identificare le singole parole che andranno a formare il tuo array da confrontare con quello delle città.
La funzione array_map() è spiegata qui
http://it.php.net/manual/en/function.array-map.php
codice:
<?php
$citta = array('roma','milano','napoli','torino');
$title = "Sono stati trovati dei resti archeologici a Roma e a Napoli";
// funzione per convertire in minuscolo l'elemento dell'array che viene passato
function minuscolo($val) {
return strtolower($val);
}
preg_match_all('#\w+#',$title,$mth);
// rendo minuscole tutte le stringhe recuperate tramite l'espressione regolare
$parole = array_map('minuscolo',$mth[0]);
// recupero gli elementi comuni
$result = array_intersect($citta, $parole);
//echo '<pre>';
//print_r($result);
// verifico quanti elementi ha restituito l'intersezione
// se ce ne sono recupero il primo elemento "capitalizzato"
echo count($result) > 0 ? ucfirst($result[0]) : 'nessuna corrispondenza';
?>