0

stristr を使用して JSON をキーワードでフィルタリングすると、重複したエントリ (正確には 4 つ) が取得され続けます。私のコードの例は次のとおりです。

$keywords = array('small','medium','large');

foreach($keywords as $keyword) {
foreach ($data as &posts) {
    if(stristr($posts['message'],$keyword) !== FALSE ) {
        print_r($posts);
        }
        }
        }

次のことを行うと、重複はありません。

foreach ($data as &posts) {
    print_r($posts);
    }

私は試しarray_uniqましたが、成功しませんでした。誰かが私を正しい方向に向けることができますか? JSONをソートするより良い方法はありますか?

4

1 に答える 1

0

重複した投稿は複数のキーワードに一致しますか? その場合、一致ごとに出力されます。

一致ごとに 1 回だけ各投稿を印刷したい場合は、最初に投稿をループし、一致するキーワードが見つかったら投稿のチェックを終了します。

foreach ($data as &posts) {
  foreach($keywords as $keyword) {
    if(stristr($posts['message'],$keyword) !== FALSE ) {
        print_r($posts);
        break;
    }
  }
}
于 2013-07-22T01:44:12.557 に答える