php - How to place strings into an array through a search and then output it? -


$states = "mississippi alabama texas massachusetts kansas"; $statesa = explode(' ',$states); $statesarray = array();  foreach($statesa $state) { if(preg_match( '/xas$/', trim($state))) $statesarray[0] = trim($state); }  foreach($statesa $state) { if(preg_match('/^k.*s$/i', trim($state))) $statesarray[1] = trim($state); }  foreach($statesa $state) { if(preg_match('/^m.*s$/', trim($state))) $statesarray[2] = trim($state); }  foreach($statesa $state) { if(preg_match('/a$/', trim($state))) $statesarray[3] = trim($state); }  foreach($statesa $state) { #problem here if(preg_match('/^m/', trim($state))) $statesarray[4] = trim($state); }  foreach ( $statesarray $element => $value ) print( "element $element of array $value <br />"); 

the task output word begins letter m in variable state. have "mississippi alabama texas massachusetts kansas" in $states. when try print out, massachusetts gets printed out rather mississippi. why that?

<?  foreach($statesa $state) { #problem here   if(preg_match('/^m/', trim($state)))   $statesarray[4] = trim($state);   } ?> 

in code above, both massachusetts , mississippi match expression, , both stored in $statesarray[4]. if want first match, maybe should check if $statesarray[4] set. so, should work:

<?   foreach($statesa $state) { #problem here     if(preg_match('/^m/', trim($state)) && !isset($statesarray[4]))     $statesarray[4] = trim($state);   } ?> 

this fill $statesarray[4] if not set.

let me know if works you.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -