0

ARRAY()使用中の単語のブラックリストを除外するためのこの関数/メソッドがありますが、array_filter以下のこのコードのオブジェクトと同様のことを行う必要があります...

JSONオブジェクト

// Get JSON Object
$obj = json_decode($out);

// Iterate JSON Object
foreach($obj as $index => $user) {
    echo $user->id;
    echo $user->screen_name;
    echo $user->language;
    echo $user->location;
    echo $user->time_zone;
    echo $last_status_date;
    echo $user->status->text;


    // Filter out Objects that match the Blacklist


    // insert remainning into database here

}

私の現在のブラックリストフィルター機能

public function blacklistFilter($raw_array){

    //$data1 = array('Phillyfreelance' , 'PhillyWebJobs', 'web2project', 'cleanname');
    $data1 = array_filter($data1, function($el) {
            $bad_words = array('job', 'freelance', 'project', 'gig', 'word', 'news', 'studio');
            $word_okay = true;

            foreach ( $bad_words as $bad_word ) {
                if ( stripos($el, $bad_word) !== FALSE ) {
                    $word_okay = false;
                    break;
                }
            }

            return $word_okay;
    });
}

だから私はARRAYSのようにオブジェクトをフィルタリングするための同様の関数があるかどうか興味がありarray_filterますか?

最終的に私の目標は、関数を介して何百ものJSONオブジェクトを渡し、ユーザー名の単語のセットに一致するものを除外し、言語に一致するものを除外し、場所に一致するものを除外できるようにすることです。タイムゾーン

4

2 に答える 2

2

specifically for objectあなたがそれを必要としないならあなたが解決策を望むことを除いて

あなたが呼んでいる

  $obj = json_decode($out);

それがあなたがオブジェクトを取得している理由です..あなたが呼び出す場合

 $obj = json_decode($out,true);

2番目の引数がTRUE、のjson_decode場合、objects will be converted into associative arrays.

応答は配列になります。ドキュメントについては、 http://php.net/manual/en/function.json-decode.phpを参照してください。

于 2012-04-21T01:51:59.720 に答える
1

すべてを正しく理解していれば、オブジェクト用の新しいPHP関数も必要ないと思います。また、フィルターは非常に複雑に見えます。

$obj = json_decode($out);
$bad_words = array('job', 'freelance', 'project', 'gig', 'word', 'news', 'studio');
foreach((array)$obj as $key => $val)
{
    $word_okay = !in_array($val, $bad_words);
    if($word_okay){
        echo "{$val} is good";
    }
    else{
        echo "{$val} is bad";
    }
}

必要に応じてオブジェクトを配列として扱い、それでもオブジェクトとして保持できるようにしたいことを前提としています。それ以外の場合、これはJSONオブジェクトを配列として初期化します。

$obj = json_decode($out, true);
于 2012-04-21T01:52:56.863 に答える