PHP splitAddress – Functie van de maand – augustus 2019

Het komt vaak voor dat er in een database een straat + huisnummer in één veld opgeslagen wordt. Met deze functie (splitAddress) splits je dit gemakkelijk in straat / huisnummer + extensie.

/**
* Splitsen van complete straat / huisnummer combinatie naar Straat, Huisnummer, Toevoeging
* 
* @param mixed $aAddress
*/
function splitAddress($aAddress) {
	$Street=$aAddress;
	$HomeNumber="";
	$HomeNumberExt="";

    //laatste 11 karakters van het complete adres
	$HomeNumber=substr($aAddress,-11);
	$max=strlen($HomeNumber);

    //vind positie van het eerst voorkomende nummer in de laatste 11 en splits hierop
	for($tel=0;$tel<$max;$tel++) {
		if(is_numeric($HomeNumber{$tel})) {
			$HomeNumber=substr($aAddress,-$max+$tel);
			$Street=substr($aAddress,0,strlen($aAddress)-$max+$tel);
			break;
		}
	}
    //controle of er wel een nummer gevonden is
	if($tel==$max) {
		//geen nummer gevonden
		$HomeNumber="";
		$HomeNumberExt="";
	}
    //haal de extensie uit het huisnummer indien aanwezig
	for($tel=0;$tel<strlen($HomeNumber);$tel++) {
		if(!is_numeric($HomeNumber{$tel})) {
			$HomeNumberExt=substr($HomeNumber,$tel);
			$HomeNumber=substr($HomeNumber,0,$tel);
			break;
		}
	}
    //geef resultaat terug als een array
	return array(trim($Street),trim($HomeNumber),trim($HomeNumberExt));
}

Van de laatste 11 karakters wordt het eerste voorkomende cijfer bepaald, hierop wordt de straatnaam / huisnummer gesplitst.

Doe er je voordeel mee…!