我正在尝试搜索值为Mississippi Alabama Texas Massachusetts Kansas
的$states。脚本应执行以下任务:
-
在$states中搜索以xas结尾的单词。将此字存储在名为$statesArray的数组的元素0中。
-
在$states中搜索以k开头、以s结尾的单词。执行不区分大小写的比较。将此单词存储在$statesArray的元素1中。
-
在$states中搜索以M开头、以s结尾的单词。将此元素存储在数组的元素2中。
-
在$states中搜索以a结尾的单词。将此单词存储在数组的元素3中。
-
在以M开头的字符串开头的$states中搜索单词。将此单词存储在数组的元素4中。
-
将数组$statesArray输出到屏幕。
<html> <body> <?php $statesA = "Mississippi Alabama Texas Massachusetts Kansas". $statesArray = array(); foreach($statesA as $state) { if(preg_match( '/xas$/', ($state))) $statesArray[0] = ($state); } foreach($statesA as $state) { if(preg_match('/^k.*s$/i', ($state))) $statesArray[1] = ($state); } foreach($statesA as $state) { if(preg_match('/^M.*s$/', ($state))) $statesArray[2] = ($state); } foreach($statesA as $state) { if(preg_match('/a$/', ($state))) $statesArray[3] = ($state); } foreach($statesA as $state) { if(preg_match('/^M/', ($state))) $statesArray[4] = ($state); } foreach ( $statesArray as $element => $value ) print( "Element $element of statesArray is $value <br />"); print( "</p>" ); ?><!-- end PHP script -->
问题是我没有得到任何输出。
请尝试使用$statesA = array('Mississippi', 'Alabama', 'Texas', 'Massachusetts', 'Kansas');
。
array
,则explode
方法也可用于打断句子并将其转换为array
请查看下面的代码。
<?php
$states = "Mississippi Alabama Texas Massachusetts Kansas";
$statesArray = [];
$states1 = explode(' ',$states);
foreach($states1 as $state) {
if(preg_match( '/xas$/', ($state)))
$statesArray[0] = ($state);
}
foreach($states1 as $state) {
if(preg_match('/^k.*s$/i', ($state)))
$statesArray[1] = ($state);
}
foreach($states1 as $state) {
if(preg_match('/^M.*s$/', ($state)))
$statesArray[2] = ($state);
}
foreach($states1 as $state) {
if(preg_match('/a$/', ($state)))
$statesArray[3] = ($state);
}
foreach($states1 as $state) {
if(preg_match('/^M/', ($state)))
$statesArray[4] = ($state);
}
foreach ( $statesArray as $element => $value ){
print( $value." is the element ". $element."<br/>");
}
?>
输出
德克萨斯州是元素0
堪萨斯州是元素1
马萨诸塞州是要素2
阿拉巴马州是第三要素
马萨诸塞州是的第4元素