@@ -266,10 +266,53 @@ class CountriesArray{
266266 "EH " => array ( 'alpha2 ' =>'EH ' , 'alpha3 ' =>'ESH ' , 'num ' =>'732 ' , 'isd ' => '212 ' , "name " => "Western Sahara " , "continent " => "Africa " ),
267267 "YE " => array ( 'alpha2 ' =>'YE ' , 'alpha3 ' =>'YEM ' , 'num ' =>'887 ' , 'isd ' => '967 ' , "name " => "Yemen " , "continent " => "Asia " ),
268268 "ZM " => array ( 'alpha2 ' =>'ZM ' , 'alpha3 ' =>'ZMB ' , 'num ' =>'894 ' , 'isd ' => '260 ' , "name " => "Zambia " , "continent " => "Africa " ),
269- "ZW " => array ( 'alpha2 ' =>'ZW ' , 'alpha3 ' =>'ZWE ' , 'num ' =>'716 ' , 'isd ' => '263 ' , "name " => "Zimbabwe " , "continent " => "Africa " ),
269+ "ZW " => array ( 'alpha2 ' =>'ZW ' , 'alpha3 ' =>'ZWE ' , 'num ' =>'716 ' , 'isd ' => '263 ' , "name " => "Zimbabwe " , "continent " => "Africa " )
270+ );
271+
272+ /**
273+ * Non iso countries
274+ * @var array
275+ */
276+ public static $ countries_non_iso = array (
270277 "XK " => array ( 'alpha2 ' =>'XK ' , 'alpha3 ' =>'KOS ' , 'num ' =>'383 ' , 'isd ' => '383 ' , "name " => "Kosovo " , "continent " => "Europe " , ),
271278 );
272279
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+ }
273316
274317 /*
275318 * function get()
@@ -380,15 +423,15 @@ public static function getFromContinent( $keyField = 'alpha2', $requestedField =
380423 if ( $ continent ) {
381424 if ( $ country ['continent ' ] == $ continent ) {
382425 $ result [ $ country [ $ keyField ] ] = $ country [ $ requestedField ];
383- }
426+ }
384427 } else {
385428 $ result [ $ country [ $ keyField ] ] = $ country [ $ requestedField ];
386429 }
387430 } else {
388431 if ( $ continent ) {
389432 if ( $ country ['continent ' ] == $ continent ) {
390433 $ result [] = $ country [ $ requestedField ];
391- }
434+ }
392435 } else {
393436 $ result [] = $ country [ $ requestedField ];
394437 }
0 commit comments