首页 > 解决方案 > 为数组中找到的每个索引添加 +1

问题描述

我有一个表单,它接受用户输入并将其放入数组中,然后用户选择他们想要在所述数组中找到的单词。此后检查该数组以查看单词的每个索引是什么以及该单词在文本中的每次出现。

因此,如果您编写字符串“What is what”并想找到单词“what”,它会说单词的位置是“0 和 2”,而我希望它说“1 和 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) {
            $counter++;
        }

    }
    echo "The word $strName can be found at: ";
    echo implode(' ', array_keys($parts, $strName));    
    echo "<br>";
    echo "The word $strName was found $counter times";
    }

标签: phparrays

解决方案


您可以在内爆之前映射+1数组键。如果您对此感兴趣,我还建议了另一种查找搜索词并计算出现次数的方法,但 map 也可以按照您当前的方式工作。

$found = array_intersect($parts, [$strName]);
echo "The word $strName can be found at: ";
echo implode(' ', array_map(function($x) { return $x + 1; }, array_keys($found)));
echo "<br>";
echo "The word $strName was found ". count($found) ." times";

推荐阅读