向PHP foreach循环添加where子句


adding a where clause to a PHP foreach loop

我正试图将一个搜索表单添加到页面上输出的结果列表中。

我在表格中使用的变量是"术语"

<form method="post">
    <input type="text" name="term" /><br />
    <input style="margin-top:-16px; margin-left:10px;" type="submit" name="submit" value="Submit" />
</form> 

我想改变foreach循环来处理表单,(目前看起来像这样)

  <?php foreach ($data['page'] as $item): ?>

但我希望它的功能像:

  <?php foreach ($data['page'] as $item) WHERE $item contains 'term': ?>

(我知道上面的内容不正确,但这正是我想要实现的。)

<?php 
    foreach ($data['page'] as $item) {
        if (in_array($_POST['term'], $item)) {
            // do your work.
        }
    }
?>

in_array检查元素是否在数组中。

$_POST是一个PHP超全局,它包含使用具有<form method="post">的HTML表单提交到当前页面的所有POST数据。PHP超全局意味着它们在每个PHP脚本中都可用,而无需首先声明它们。

我不知道我是否读对了你的问题,但我认为它是这样的:

<?php
foreach ($data['page'] as $item) {
    if ($item == 'term') {
        // do something
    }
}
?>

或者可能是

<?php
foreach ($data['page'] as $item) {
    if ($item == $_POST['term']) {
        // do something
    }
}
?>