Php 如何在数组中搜索单词并执行任务?
我正在尝试搜索$states,其值为Php 如何在数组中搜索单词并执行任务?,php,arrays,Php,Arrays,我正在尝试搜索$states,其值为密西西比州、阿拉巴马州、得克萨斯州、马萨诸塞州、堪萨斯州。脚本应执行以下任务: 在$states中搜索以xas结尾的单词。将此单词存储在名为$statesArray的数组的元素0中 在$states中搜索以k开头以s结尾的单词。执行不区分大小写的比较。将该单词存储在$statesArray的元素1中 在$states中搜索以M开头、以s结尾的单词。将此元素存储在数组的元素2中 在$states中搜索以a结尾的单词。将该单词存储在数组的元素3中 在以M开头的字符
密西西比州、阿拉巴马州、得克萨斯州、马萨诸塞州、堪萨斯州
。脚本应执行以下任务:
<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是字符串,而不是数组。因此,在它上面循环没有任何作用
尝试使用
$statesA=array('Mississippi'、'Alabama'、'Texas'、'Massachusetts'、'Kansas')
相反。分解方法也可用于打断句子,并将其转换为数组,如果$states不是数组
看看下面的代码
<?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元素
堪萨斯州是第一要素
马萨诸塞州是第二要素
阿拉巴马州是第三要素
马萨诸塞州是第四要素