0

私が取り組んでいるサイトには、情報がまだメインの見出しに表示されていない場合にのみ表示されるサブヘッドラインがあります。メインの見出しは任意の文字列ですが、サブ見出しはプログラムで作成されます。小見出しは多次元配列の内容から生成されます (その内容はページの他の部分にも使用されます)。

の PHP の例を使用foreachして配列をドリルダウンし (それがどのように機能しているか半分しか理解していませんでした) strpos、配列の値が見出しの文字列に含まれているかどうかを確認しました。

残念ながら、うまくいきません。うまくいくはずだと思っていた方法で愚かな間違いを犯した可能性が高い. または、サブヘッドを非表示にするようにサイトに指示する変数 (「hider」) は、配列内の他の値の結果として、常に「いいえ」にリセットされます。

foreach ($arr_info as $i1 => $n1) {    
    foreach ($n1 as $i2 => $n2) {     
        foreach ($n2 as $i3 => $n3) {
            $pos = strpos($headline, $n3);
            if ($pos === false) {
                $hider="no";
            } else {
                $hider="yes";
            }
        }
    }

何か案は?大変助かります。

4

2 に答える 2

0

よりクリーンなアプローチは、値から正規表現を作成し、それが文字列と一致するかどうかを確認することだと思います。

$values = array();
array_walk_recursive($arr_info, function($k){$GLOBALS['values'][] = preg_quote($k);});
$hider = preg_match('/(' . implode($values, '|') . ')/', $headline) ? 'yes' : 'no';
于 2011-12-03T01:52:32.640 に答える
0

これを追加:

$hider="はい";
壊す;

それが役に立てば幸い

于 2011-12-03T01:11:45.933 に答える