我尝试使用值Mississippi Alabama Texas Massachusetts Kansas
搜索$状态。该脚本应执行以下任务:
在$ states中搜索以xas结尾的单词。将此单词存储在名为$ statesArray。
在$状态中搜索以k开头并以s结尾的单词。执行不区分大小写的比较。将此单词存储在$ statesArray的元素1中。
在$状态中搜索以M开头并以s结尾的单词。将此元素存储在数组的元素2中。
在$状态中搜索以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 -->
问题在于我没有得到任何输出。
答案 0 :(得分:1)
$ statesA是一个字符串,而不是一个数组。因此,循环它并没有做任何事情。
请尝试使用$statesA = array('Mississippi', 'Alabama', 'Texas', 'Massachusetts', 'Kansas');
。
答案 1 :(得分:0)
explode
, array
方法也可以用来打破句子并将其转换为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
阿拉巴马州是元素3
马萨诸塞州是元素4