我创建了一个简单的PHP脚本,用户输入一个句子(或多个句子),脚本从textarea中取出每个单词并将其分成一个数组。用户还将在数组中键入要搜索的单词。
脚本应该查看数组并打印出单词所在位置的索引。
这是我到目前为止所做的:
foreach($parts as $item) {
if ($item == $strName) {
$k = array_search($strName, array_values($parts));
print "$k\n";
}
}
但是,它只打印出字符串的第一个索引位置。因此,如果我使用的句子是"苹果从树上掉下来,它将只打印出#0; 0 0",这是该单词第一次出现在数组中(它也是如果索引是1,2,3等,则执行相同的操作。有什么我做错了吗?对不起,如果我没有包含足够的信息。
整个代码:
<form action="sida3.php" method="post">
Text: <textarea name="textarea"></textarea>
<br>
Search word: <input type="text" name="search">
<br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
if(isset($_POST['submit'])){
$parts = explode(" ", $_POST['textarea']);
$strName = $_POST['search'];
print_r ($parts);
echo '<br>';
foreach($parts as $item) {
if ($item == $strName) {
print_r(array_keys($parts, $strName));
}
}
}
?>
答案 0 :(得分:0)
你去吧
function search_array( $needle, $string ){
$haystack = explode( " ", $string);
$keys_found = array_keys( array_map( "strtolower", $haystack) , strtolower( $needle ), false);
if( !empty( $keys_found ) ):
return array(
"count" => count( $keys_found ),
"keys" => $keys_found
);
else:
return false;
endif;
}
var_dump( search_array("Every","Every good boy does fine, every good girl does fine") );