【发布时间】:2018-01-29 20:51:48
【问题描述】:
我创建了一个简单的 PHP 脚本,用户在其中输入一个(或多个)句子,该脚本从文本区域中获取每个单词并将其拆分为一个数组。用户还将键入要在数组中搜索的单词。
脚本应该查看数组并打印出单词所在位置的索引。
这是我目前所拥有的:
foreach($parts as $item) {
if ($item == $strName) {
$k = array_search($strName, array_values($parts));
print "$k\n";
}
}
但是,这只会打印出字符串的第一个索引位置。所以如果我使用的句子是“苹果从树上掉下来”,它只会打印出“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));
}
}
}
?>
【问题讨论】:
-
$item 是什么值?字符串还是数组?我假设您使您尝试做的事情过于复杂。除了查找实例之外,一旦找到,您还打算如何处理它们?
-
print_r(array_keys($parts, $strName)); -
@joeb 一旦找到字符串的位置,它应该说“在 0 4 处找到输入字符串”和“找到 2 次字符串”。项目是数组中的字符串