un po' in ritardo ma sempre utilie a chi ne avesse bisogno, naturalmente, è sempre possibile aggiungere dei suffissi per aumentarne la precisione:



Codice PHP:
function plur2sing($stringa) {

    
$stinga strtolower($stinga);

    
$combi=array("be"=>"ba",
        
"che"=>"ca",
        
"cchie"=>"cchio",
        
"ce" => "cia",
        
"de" => "da",
        
"fe" => "fa",
        
"ghe" => "ga",
        
"glie" => "glia",
        
"le" => "la",
        
"me" => "ma",
        
"ne" => "na",
        
"pe" => "pa",
        
"que" => "qua",
        
"re" => "ra",
        
"se" => "sa",
        
"te" => "ta",
        
"ve" => "va",
        
"ze" => "za",
        
"bi" => "bo",
        
"occhi" => "occhio",
        
"chi" => "co",
        
"rci" => "rco",
        
"vortici"=>"vortice",
        
"rtici" => "rtico",
        
"ci" => "cio",
        
"fedi" => "fede",
        
"di" => "do",
        
"fi" => "fo",
        
"gi" => "go",
        
"ghi" => "go",
        
"gli" => "glio",
        
"armi" => "arme",
        
"li" => "lo",
        
"mi" => "mo",
        
"oni" => "one",
        
"rni" => "rno",
        
"treni"=> "treno",
        
"oni" => "one",
        
"ini" => "ino",
        
"eni" => "eno",
        
"pi" => "po",
        
"ari" => "are",
        
"ccessori" => "ccessorio",
        
"bri" => "bro",
        
"ri" => "re",
        
"si" => "so",
        
"isti" => "ista",
        
"ti" => "to",
        
"zi" => "zo",
        
"ii" => "io",
        
"erei" => "ereo"
        
"nei" => "neo",
        
"ue" => "ua");
        

$sing_word $stringa;

foreach (
$combi as $plurale=>$singolare)


    {
        
        if (
substr($stringa,strlen($plurale)*-1) == $plurale) {
            
$sing_word substr($stringa,0,strlen($stringa)-strlen($plurale)).$singolare;
            break;
        }
        
        
    }

    return 
$sing_word;


logicamente, si può scambiare il tutto ed ottenere il plurale dal singolare.

ciao!