首页 > 解决方案 > 如何输出我在数组中找到元素的索引

问题描述

我想遍历我的数组并查找它是否包含某些“searchWord”,然后我想返回这个 searchWord 存在的索引。我还想返回它被找到的次数。

这就是我到目前为止已经走了多远,做了一个循环来返回“是”或“否”,这取决于它是否被发现。但是我如何返回实际的索引和时间?

(是的,我知道这有一些功能,但我想了解这是如何完成的。)

    Enter random words: <input type="text" name="words" value="<?php echo isset($_POST['words']) ? $_POST['words']: '' ?>" ><br/>
    Search Word: <input type="text" name="search" value="<?php echo isset($_POST['search']) ? $_POST['search']: '' ?>" ><br/>
    <input type="submit" name="submit" value="Print" />
    </form>
    <br>
    <?php
        $words = $_POST['words']; 
        $array = explode(" ", $words); // Split words into array
        print_r($array); // Print
        
        $searchWord = $_POST['search']; 
        
        
        foreach($array as $value)
        {
            if ($value == $searchWord)
            {
                echo "<br/>Yes";
                //break;
            }
            else
            {
                echo "<br/>No";
                //break;
            }
        }

    ?>

我希望它返回类似“在索引 0 和 4 上发现 2 次‘我们’这个词”

标签: phparrays

解决方案


为了完整性(没有循环),只需搜索单词并返回键。然后你可以计算它们并显示它们:

$keys = array_keys($words, $searchWord);
echo "the word '$searchWord' is found " . count($keys) . " times, on index " . implode(' and ', $keys);

推荐阅读