E' semplice, prova questa (ma leggi il commento)
Codice PHP:
$pathToFiles = 'percorso alla cartella contenente i files';
$pathToDirs = 'percorso alla cartella contenente le sottocartelle';
foreach (glob($pathToFiles . DIRECTORY_SEPARATOR . '*.pdf') as $oldname)
{
if (is_dir($dir = $pathToDirs . DIRECTORY_SEPARATOR . pathinfo($oldname, PATHINFO_FILENAME)))
{
$newname = $dir . DIRECTORY_SEPARATOR . pathinfo($oldname, PATHINFO_BASENAME);
// prima di usare rename() dovresti fare alcuni controlli, come ad esempio verificare
// che non esista già un file con lo stesso nome nella cartella di destinazione o che
// l'accesso a questa non sia in sola lettura...
rename($oldname, $newname);
}
}