$states = "Mississippi Alabama Texas Massachusetts Kansas";
$statesA = explode(' ',$states);
$statesArray = array();
foreach($statesA as $state) {
if(preg_match( '/xas$/', trim($state)))
$statesArray[0] = trim($state);
}
foreach($statesA as $state) {
if(preg_match('/^k.*s$/i', trim($state)))
$statesArray[1] = trim($state);
}
foreach($statesA as $state) {
if(preg_match('/^M.*s$/', trim($state)))
$statesArray[2] = trim($state);
}
foreach($statesA as $state) {
if(preg_match('/a$/', trim($state)))
$statesArray[3] = trim($state);
}
foreach($statesA as $state) { #PROBLEM HERE
if(preg_match('/^M/', trim($state)))
$statesArray[4] = trim($state);
}
foreach ( $statesArray as $element => $value )
print( "Element $element of the Array is $value <br />");
The task is to basically to output a word that begins with the letter M in the variable state. I have "Mississippi Alabama Texas Massachusetts Kansas" in $states. When I try to print it out, Massachusetts gets printed out rather than Mississippi. Why is that?
Massachusettsis the last element to match, overwriting the previous match ofMississippi.