Ik ben bezig met een script om via glob bestanden uit een directory te halen en deze per variabele te laten zien.

Ik heb bestanden in een directory staan met nummers. bijvoorbeeld bestand2_1.pdf, bestand3_1.pdf, bestand2_2.pdf, bestand3_2.pdf
Nu wil ik graag een overzicht maken met het laatste cijfer in een bestand.
Dus
1
bestand2_1.pdf
bestand3_1.pdf
2
bestand2_2.pdf
bestand3_2.pdf

Nu heb ik ik met glob en array_unique al een array eruit gehaald met als resultaat (1,2). En ik heb geprobeerd met foreach en for while om dit resultaat te bereiken, maar het lukt me niet. Heeft iemand hier een oplossing voor? Ik hoop dat ik het een beetje goed omschreven heb.
Niet getest, Regex is verre van mijn sterkste kant dus ik weet niet of het 100% correct is.


<?php

    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Alle gewenste bestanden ophalen.
    --------------------------------------------------------------------------------------------------------------------------*/	

	/*---- INFO! ----> 
	
		Hier staat het gedeelte waar je alle bestanden ophaalt doormiddel van glob. Ik heb er nu even een array neer gezet
		zodat ik snel even kon testen. Dit gedeelte moet je dus zelf invullen.
				
	*/
	
		$files = array('bestand2_1.pdf', 'bestand3_2.pdf', 'bestand3_1.pdf', 'bestand2_2.pdf');


    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Alle gevonden bestanden 1 voor 1 aflopen en in hun correcte groep plaatsen.
    --------------------------------------------------------------------------------------------------------------------------*/	

	# Default | Set array $file_groups voor het opslaan van alle bestanden per groep.

		$file_groups = array();
		

	# Alle gevonden bestanden 1 voor 1 aflopen.
	
		foreach($files as $file){
			
		# Kijken in wat voor groep het bestand hoort.
					
			if(preg_match('/_(.*?)\./', $file, $group)){

			/*---- INFO: We hebben de groep waar het bestand tot behoort gevonden. ----*/
						
			# Kijken of de groep waar het bestand in hoort al bestaat JA of NEE.
				
				if(array_key_exists($group[1], $file_groups)){
		
				/*---- INFO: Ja, deze groep bestaat al. ----*/
		
				# Bestand toevoegen aan de correcte groep.
				
					$file_groups[$group[1]][] = $file;	
					
				}
				else{
		
				/*---- INFO: Nee, deze groep bestaat nog niet. ----*/
		
				# Nieuwe groep aanmaken en het huidige bestand er direct aan toevoegen.
					
					$file_groups[$group[1]] = array($file);
					
				}
			}
			else{
				
			/*---- INFO! ----> 
			
				Er is iets fout gegaan tijdens het bepalen tot welke groep het huidige bestand hoort. Er is op het moment
				voor gekozen om met deze bestanden niets te doen. Ze worden dus niet weergeven.
						
			*/
				
			}
		}


    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Bestanden weergeven.
    --------------------------------------------------------------------------------------------------------------------------*/	

	# Alle groepen aflopen.

		foreach($file_groups as $group => $files){
		
		# De huidige groep weergeven.
		
			echo $group;
		
		
		# Bestanden sorteren.
		
			sort($files);
			
			
		# Alle bestanden in een lijst zetten en weergeven.
		
			echo '<ul><li>'.implode('</li><li>', $files).'</li></ul>';
			
		}

?>
Heel erg bedankt voor het script, maar ik krijg het daarmee niet voor elkaar.
Inmiddels heb ik het op een andere manier wel voor elkaar gekregen.
En natuurlijk geef je ons ook de oplossing.
Ik heb het nog even getest, het werkt goed als ik je niet verkeerd heb begrepen. sla het script dat ik poste maar eens op in een nieuwe pagina. Je krijgt dan de lijst te zien waar je om vroeg in je voorbeeld.

Reageren