Skip to content

Instantly share code, notes, and snippets.

@jadwigo
Created August 16, 2017 10:44
Show Gist options
  • Save jadwigo/5711972236b54ab7188d72386203af9b to your computer and use it in GitHub Desktop.
Save jadwigo/5711972236b54ab7188d72386203af9b to your computer and use it in GitHub Desktop.
Lookup Nederlandse provincie ahv. cijfers van de postcode
<?php
/**
* Lookup provincie ahv postcode:
* https://nl.wikipedia.org/wiki/Postcodes_in_Nederland
*
* @param $postcode
*
* @return string
*/
function lookupProvincie($postcode) {
$postcodecijfers = substr(trim($postcode), 0, 4);
$provincies = array(
array('min' => '1000', 'max' => '1299', 'provincie' => 'Noord-Holland'),
array('min' => '1300', 'max' => '1379', 'provincie' => 'Flevoland'),
array('min' => '1380', 'max' => '1383', 'provincie' => 'Noord-Holland'),
array('min' => '1390', 'max' => '1393', 'provincie' => 'Utrecht'),
array('min' => '1394', 'max' => '1394', 'provincie' => 'Noord-Holland'),
array('min' => '1396', 'max' => '1396', 'provincie' => 'Utrecht'),
array('min' => '1398', 'max' => '1425', 'provincie' => 'Noord-Holland'),
array('min' => '1426', 'max' => '1427', 'provincie' => 'Utrecht'),
array('min' => '1428', 'max' => '1429', 'provincie' => 'Zuid-Holland'),
array('min' => '1430', 'max' => '2158', 'provincie' => 'Noord-Holland'),
array('min' => '2159', 'max' => '2164', 'provincie' => 'Zuid-Holland'),
array('min' => '2165', 'max' => '2165', 'provincie' => 'Noord-Holland'),
array('min' => '2170', 'max' => '3381', 'provincie' => 'Zuid-Holland'),
array('min' => '3382', 'max' => '3464', 'provincie' => 'Utrecht'),
array('min' => '3465', 'max' => '3466', 'provincie' => 'Zuid-Holland'),
array('min' => '3467', 'max' => '3769', 'provincie' => 'Utrecht'),
array('min' => '3770', 'max' => '3794', 'provincie' => 'Gelderland'),
array('min' => '3795', 'max' => '3836', 'provincie' => 'Utrecht'),
array('min' => '3837', 'max' => '3888', 'provincie' => 'Gelderland'),
array('min' => '3890', 'max' => '3899', 'provincie' => 'Flevoland'),
array('min' => '3900', 'max' => '3924', 'provincie' => 'Utrecht'),
array('min' => '3925', 'max' => '3925', 'provincie' => 'Gelderland'),
array('min' => '3926', 'max' => '3999', 'provincie' => 'Utrecht'),
array('min' => '4000', 'max' => '4119', 'provincie' => 'Gelderland'),
array('min' => '4120', 'max' => '4125', 'provincie' => 'Utrecht'),
array('min' => '4126', 'max' => '4129', 'provincie' => 'Zuid-Holland'),
array('min' => '4130', 'max' => '4139', 'provincie' => 'Utrecht'),
array('min' => '4140', 'max' => '4146', 'provincie' => 'Zuid-Holland'),
array('min' => '4147', 'max' => '4162', 'provincie' => 'Gelderland'),
array('min' => '4163', 'max' => '4169', 'provincie' => 'Zuid-Holland'),
array('min' => '4170', 'max' => '4199', 'provincie' => 'Gelderland'),
array('min' => '4200', 'max' => '4209', 'provincie' => 'Zuid-Holland'),
array('min' => '4211', 'max' => '4212', 'provincie' => 'Gelderland'),
array('min' => '4213', 'max' => '4213', 'provincie' => 'Zuid-Holland'),
array('min' => '4214', 'max' => '4219', 'provincie' => 'Gelderland'),
array('min' => '4220', 'max' => '4249', 'provincie' => 'Zuid-Holland'),
array('min' => '4250', 'max' => '4299', 'provincie' => 'Noord-Brabant'),
array('min' => '4300', 'max' => '4599', 'provincie' => 'Zeeland'),
array('min' => '4600', 'max' => '4671', 'provincie' => 'Noord-Brabant'),
array('min' => '4672', 'max' => '4679', 'provincie' => 'Zeeland'),
array('min' => '4680', 'max' => '4681', 'provincie' => 'Noord-Brabant'),
array('min' => '4682', 'max' => '4699', 'provincie' => 'Zeeland'),
array('min' => '4700', 'max' => '5299', 'provincie' => 'Noord-Brabant'),
array('min' => '5300', 'max' => '5335', 'provincie' => 'Gelderland'),
array('min' => '5340', 'max' => '5765', 'provincie' => 'Noord-Brabant'),
array('min' => '5766', 'max' => '5817', 'provincie' => 'Limburg'),
array('min' => '5820', 'max' => '5846', 'provincie' => 'Noord-Brabant'),
array('min' => '5850', 'max' => '6019', 'provincie' => 'Limburg'),
array('min' => '6020', 'max' => '6029', 'provincie' => 'Noord-Brabant'),
array('min' => '6030', 'max' => '6499', 'provincie' => 'Limburg'),
array('min' => '6500', 'max' => '6583', 'provincie' => 'Gelderland'),
array('min' => '6584', 'max' => '6599', 'provincie' => 'Limburg'),
array('min' => '6600', 'max' => '7399', 'provincie' => 'Gelderland'),
array('min' => '7400', 'max' => '7438', 'provincie' => 'Overijssel'),
array('min' => '7439', 'max' => '7439', 'provincie' => 'Gelderland'),
array('min' => '7440', 'max' => '7739', 'provincie' => 'Overijssel'),
array('min' => '7740', 'max' => '7766', 'provincie' => 'Drenthe'),
array('min' => '7767', 'max' => '7799', 'provincie' => 'Overijssel'),
array('min' => '7800', 'max' => '7949', 'provincie' => 'Drenthe'),
array('min' => '7950', 'max' => '7955', 'provincie' => 'Overijssel'),
array('min' => '7956', 'max' => '7999', 'provincie' => 'Drenthe'),
array('min' => '8000', 'max' => '8049', 'provincie' => 'Overijssel'),
array('min' => '8050', 'max' => '8054', 'provincie' => 'Gelderland'),
array('min' => '8055', 'max' => '8069', 'provincie' => 'Overijssel'),
array('min' => '8070', 'max' => '8099', 'provincie' => 'Gelderland'),
array('min' => '8100', 'max' => '8159', 'provincie' => 'Overijssel'),
array('min' => '8160', 'max' => '8195', 'provincie' => 'Gelderland'),
array('min' => '8196', 'max' => '8199', 'provincie' => 'Overijssel'),
array('min' => '8200', 'max' => '8259', 'provincie' => 'Flevoland'),
array('min' => '8260', 'max' => '8299', 'provincie' => 'Overijssel'),
array('min' => '8300', 'max' => '8322', 'provincie' => 'Flevoland'),
array('min' => '8323', 'max' => '8349', 'provincie' => 'Overijssel'),
array('min' => '8350', 'max' => '8354', 'provincie' => 'Drenthe'),
array('min' => '8355', 'max' => '8379', 'provincie' => 'Overijssel'),
array('min' => '8380', 'max' => '8387', 'provincie' => 'Drenthe'),
array('min' => '8388', 'max' => '9299', 'provincie' => 'Friesland'),
array('min' => '9300', 'max' => '9349', 'provincie' => 'Drenthe'),
array('min' => '9350', 'max' => '9399', 'provincie' => 'Groningen'),
array('min' => '9400', 'max' => '9478', 'provincie' => 'Drenthe'),
array('min' => '9479', 'max' => '9479', 'provincie' => 'Groningen'),
array('min' => '9480', 'max' => '9499', 'provincie' => 'Drenthe'),
array('min' => '9500', 'max' => '9509', 'provincie' => 'Groningen'),
array('min' => '9510', 'max' => '9539', 'provincie' => 'Drenthe'),
array('min' => '9540', 'max' => '9563', 'provincie' => 'Groningen'),
array('min' => '9564', 'max' => '9564', 'provincie' => 'Drenthe'),
array('min' => '9565', 'max' => '9569', 'provincie' => 'Groningen'),
array('min' => '9571', 'max' => '9579', 'provincie' => 'Drenthe'),
array('min' => '9580', 'max' => '9653', 'provincie' => 'Groningen'),
array('min' => '9654', 'max' => '9659', 'provincie' => 'Drenthe'),
array('min' => '9660', 'max' => '9748', 'provincie' => 'Groningen'),
array('min' => '9749', 'max' => '9749', 'provincie' => 'Drenthe'),
array('min' => '9750', 'max' => '9759', 'provincie' => 'Groningen'),
array('min' => '9760', 'max' => '9769', 'provincie' => 'Drenthe'),
array('min' => '9770', 'max' => '9849', 'provincie' => 'Groningen'),
array('min' => '9850', 'max' => '9859', 'provincie' => 'Friesland'),
array('min' => '9860', 'max' => '9869', 'provincie' => 'Groningen'),
array('min' => '9870', 'max' => '9879', 'provincie' => 'Friesland'),
array('min' => '9880', 'max' => '9999', 'provincie' => 'Groningen')
);
foreach($provincies as $postcodegroup) {
if($postcodecijfers >= $postcodegroup['min'] && $postcodecijfers <= $postcodegroup['max']){
return $postcodegroup['provincie'];
}
}
return '';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment