1

ページに出力された結果のリストに検索フォームを追加しようとしています。

フォームで使用している変数は「term」です

<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': ?>

(上記が間違っていることは知っていますが、それが私が達成しようとしていることです。)

4

2 に答える 2

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

in_array要素が配列内にあるかどうかを確認します。

$_POSTを持つ HTML フォームを使用して現在のページに送信されたすべての POST データを含む PHP スーパーグローバルです<form method="post">。PHP スーパーグローバルとは、最初に宣言しなくてもすべての PHP スクリプトで使用できることを意味します。

于 2013-07-28T13:35:25.263 に答える
1

あなたの質問を正しく読んでいるかどうかはわかりませんが、次のようなものだと思います。

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

またはおそらく

<?php
foreach ($data['page'] as $item) {
    if ($item == $_POST['term']) {
        // do something
    }
}
?>
于 2013-07-28T13:53:55.243 に答える