@@ -269,6 +269,50 @@ class CountriesArray{
269269 "ZW " => array ( 'alpha2 ' =>'ZW ' , 'alpha3 ' =>'ZWE ' , 'num ' =>'716 ' , 'isd ' => '263 ' , "name " => "Zimbabwe " , "continent " => "Africa " )
270270 );
271271
272+ /**
273+ * Non iso countries
274+ * @var array
275+ */
276+ public static $ countries_non_iso = array (
277+ "XK " => array ( 'alpha2 ' =>'XK ' , 'alpha3 ' =>'KOS ' , 'num ' =>'383 ' , 'isd ' => '383 ' , "name " => "Kosovo " , "continent " => "Europe " , ),
278+ );
279+
280+ /**
281+ * CountriesArray constructor.
282+ * @param boolean $iso
283+ * @author Paul Bönisch - <paul.boenisch@umwerk.net>
284+ */
285+ public function __construct ($ iso )
286+ {
287+ if (!$ iso ){
288+ self ::$ countries = array_merge (self ::$ countries , self ::$ countries_non_iso );
289+ }
290+ }
291+
292+ /**
293+ * Returns countries array depending on iso flag
294+ * @param bool $iso
295+ * @return array
296+ * @author Paul Bönisch - <paul.boenisch@umwerk.net>
297+ */
298+ public static function getCountries ($ iso = true ){
299+ $ result = self ::$ countries ;
300+ if (!$ iso ){
301+ $ result = array_merge ($ result , self ::$ countries_non_iso );
302+ }
303+
304+ return $ result ;
305+ }
306+
307+ /**
308+ * Returns instance of ContriesArray with $iso property according to $value parameter
309+ * @param $value
310+ * @return CountriesArray
311+ * @author Paul Bönisch - <paul.boenisch@umwerk.net>
312+ */
313+ public static function iso ($ value ){
314+ return new CountriesArray ($ value );
315+ }
272316
273317 /*
274318 * function get()
@@ -379,15 +423,15 @@ public static function getFromContinent( $keyField = 'alpha2', $requestedField =
379423 if ( $ continent ) {
380424 if ( $ country ['continent ' ] == $ continent ) {
381425 $ result [ $ country [ $ keyField ] ] = $ country [ $ requestedField ];
382- }
426+ }
383427 } else {
384428 $ result [ $ country [ $ keyField ] ] = $ country [ $ requestedField ];
385429 }
386430 } else {
387431 if ( $ continent ) {
388432 if ( $ country ['continent ' ] == $ continent ) {
389433 $ result [] = $ country [ $ requestedField ];
390- }
434+ }
391435 } else {
392436 $ result [] = $ country [ $ requestedField ];
393437 }
0 commit comments