<?php
"L1ID" => 2 ,
"L1Location" => 'USA' ,
"L2ID" => 3 ,
"L2Location" => 'New York',
"L3ID" => 4 ,
"L3Location" => 'Manhanttan',
) ,
"L1ID" => 2 ,
"L1Location" => 'USA' ,
"L2ID" => 8 ,
"L2Location" => 'New Jersey' ,
"L3ID" => 7 ,
"L3Location" => 'Bergen County',
) ,
"L1ID" => 5 ,
"L1Location" => 'Canada' ,
"L2ID" => 12,
"L2Location" => 'Ontario' ,
"L3ID" => 50,
"L3Location" => 'Toronto' ,
) ,
"L1ID" => 6 ,
"L1Location" => 'South Korea',
"L2ID" => 22,
"L2Location" => 'Gyungido' ,
"L3ID" => 25,
"L3Location" => 'Buchon',
) ,
);
foreach ($locations as $location) {
$countries[$location['L1ID']] = array( 'name' => $location['L1Location'],
);
if(!array_key_exists($location['L2ID'], $countries[$location['L1ID']]['states'])){ $countries[$location['L1ID']]['states'][$location['L2ID']] = array( 'name' => $location['L2Location'],
);
}
if(!array_key_exists($location['L3ID'], $countries[$location['L1ID']]['states'][$location['L2ID']])){ $countries[$location['L1ID']]['states'][$location['L2ID']]['cities'][$location['L3ID']] = $location['L3Location'];
}
}
// Generate $countries box
foreach ($countries as $key => $country) {
echo ($key.'<BR>'."\n");
echo '<option value="' . $key . '">' . $country['name'].'</option>'."\n";
// Generate $states box
foreach ($country['states'] as $key => $state) {
echo ($key.'<BR>'."\n");
echo '<option value="' . $key . '">' . $state['name'].'</option>'."\n";
// Generate $city box
foreach ($state['cities'] as $key => $city) {
echo ($key.'<BR>'."\n");
echo '<option value="' . $key . '">' . $city.'</option>'."\n";
}
}
}
?>
ICAgICAgICA8P3BocAoKJGxvY2F0aW9ucyA9IGFycmF5ICggCiAgICBBcnJheSAoIAogICAgICAgICAgICAgICAgICAgICJMMUlEIiA9PiAyICwKICAgICAgICAgICAgICAgICAgICAiTDFMb2NhdGlvbiIgPT4gJ1VTQScgLAogICAgICAgICAgICAgICAgICAgICJMMklEIiA9PiAzICwKICAgICAgICAgICAgICAgICAgICAiTDJMb2NhdGlvbiIgPT4gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgICAgICAiTDNJRCIgPT4gNCAsCiAgICAgICAgICAgICAgICAgICAgIkwzTG9jYXRpb24iID0+ICdNYW5oYW50dGFuJywKICAgICAgICAgICAgICAgICkgLAogICAgQXJyYXkgKCAgCiAgICAgICAgICAgICAgICAgICAgIkwxSUQiID0+IDIgLAogICAgICAgICAgICAgICAgICAgICJMMUxvY2F0aW9uIiA9PiAnVVNBJyAsCiAgICAgICAgICAgICAgICAgICAgIkwySUQiID0+IDggLAogICAgICAgICAgICAgICAgICAgICJMMkxvY2F0aW9uIiA9PiAnTmV3IEplcnNleScgLAogICAgICAgICAgICAgICAgICAgICJMM0lEIiA9PiA3ICwKICAgICAgICAgICAgICAgICAgICAiTDNMb2NhdGlvbiIgPT4gJ0JlcmdlbiBDb3VudHknLAogICAgICAgICAgICAgICAgKSAsCiAKICAgIEFycmF5ICggCiAgICAgICAgICAgICAgICAgICAgIkwxSUQiID0+IDUgLAogICAgICAgICAgICAgICAgICAgICJMMUxvY2F0aW9uIiA9PiAnQ2FuYWRhJyAsCiAgICAgICAgICAgICAgICAgICAgIkwySUQiID0+IDEyLAogICAgICAgICAgICAgICAgICAgICJMMkxvY2F0aW9uIiA9PiAnT250YXJpbycgLAogICAgICAgICAgICAgICAgICAgICJMM0lEIiA9PiA1MCwKICAgICAgICAgICAgICAgICAgICAiTDNMb2NhdGlvbiIgPT4gJ1Rvcm9udG8nICwKICAgICAgICAgICAgICAgICkgLAogICAgQXJyYXkgKCAKICAgICAgICAgICAgICAgICAgICAiTDFJRCIgPT4gNiAsCiAgICAgICAgICAgICAgICAgICAgIkwxTG9jYXRpb24iID0+ICdTb3V0aCBLb3JlYScsCiAgICAgICAgICAgICAgICAgICAgIkwySUQiID0+IDIyLAogICAgICAgICAgICAgICAgICAgICJMMkxvY2F0aW9uIiA9PiAnR3l1bmdpZG8nICwKICAgICAgICAgICAgICAgICAgICAiTDNJRCIgPT4gMjUsCiAgICAgICAgICAgICAgICAgICAgIkwzTG9jYXRpb24iID0+ICdCdWNob24nLAogICAgICAgICAgICAgICAgKSAsCiAgICApOwogICAgICAgICAgICAkY291bnRyaWVzID0gYXJyYXkoKTsKICAgICAgICAgICAgJHN0YXRlcyA9IGFycmF5KCk7CiAgICAgICAgICAgICRjaXRpZXMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoICgkbG9jYXRpb25zIGFzICRsb2NhdGlvbikgewogICAgICAgICAgICAgICAgaWYoIWFycmF5X2tleV9leGlzdHMoJGxvY2F0aW9uWydMMUlEJ10sICRjb3VudHJpZXMpKQogICAgICAgICAgICAgICAgICAgICRjb3VudHJpZXNbJGxvY2F0aW9uWydMMUlEJ11dID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyA9PiAkbG9jYXRpb25bJ0wxTG9jYXRpb24nXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlcycgPT4gYXJyYXkoKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYoIWFycmF5X2tleV9leGlzdHMoJGxvY2F0aW9uWydMMklEJ10sICRjb3VudHJpZXNbJGxvY2F0aW9uWydMMUlEJ11dWydzdGF0ZXMnXSkpewogICAgICAgICAgICAgICAgICAgICRjb3VudHJpZXNbJGxvY2F0aW9uWydMMUlEJ11dWydzdGF0ZXMnXVskbG9jYXRpb25bJ0wySUQnXV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnID0+ICRsb2NhdGlvblsnTDJMb2NhdGlvbiddLAogICAgICAgICAgICAgICAgICAgICAgICAnY2l0aWVzJyA9PiBhcnJheSgpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZighYXJyYXlfa2V5X2V4aXN0cygkbG9jYXRpb25bJ0wzSUQnXSwgJGNvdW50cmllc1skbG9jYXRpb25bJ0wxSUQnXV1bJ3N0YXRlcyddWyRsb2NhdGlvblsnTDJJRCddXSkpewogICAgICAgICAgICAgICAgICAgICRjb3VudHJpZXNbJGxvY2F0aW9uWydMMUlEJ11dWydzdGF0ZXMnXVskbG9jYXRpb25bJ0wySUQnXV1bJ2NpdGllcyddWyRsb2NhdGlvblsnTDNJRCddXSA9ICRsb2NhdGlvblsnTDNMb2NhdGlvbiddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBHZW5lcmF0ZSAkY291bnRyaWVzIGJveAogICAgICAgICAgICBmb3JlYWNoICgkY291bnRyaWVzIGFzICRrZXkgPT4gJGNvdW50cnkpIHsKICAgICAgICAgICAgICAgIGVjaG8gKCRrZXkuJzxCUj4nLiJcbiIpOwogICAgICAgICAgICAgICAgZWNobyAnPG9wdGlvbiB2YWx1ZT0iJyAuICRrZXkgLiAnIj4nIC4gJGNvdW50cnlbJ25hbWUnXS4nPC9vcHRpb24+Jy4iXG4iOwoKICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlICRzdGF0ZXMgYm94CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkY291bnRyeVsnc3RhdGVzJ10gYXMgJGtleSA9PiAkc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvICgka2V5Lic8QlI+Jy4iXG4iKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8b3B0aW9uIHZhbHVlPSInIC4gJGtleSAuICciPicgLiAkc3RhdGVbJ25hbWUnXS4nPC9vcHRpb24+Jy4iXG4iOwoKICAgICAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSAkY2l0eSBib3gKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkc3RhdGVbJ2NpdGllcyddIGFzICRrZXkgPT4gJGNpdHkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAoJGtleS4nPEJSPicuIlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzxvcHRpb24gdmFsdWU9IicgLiAka2V5IC4gJyI+JyAuICRjaXR5Lic8L29wdGlvbj4nLiJcbiI7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgPz4K