2016-08-17 4 views
-2

私の仕事には少し問題があります。私はちょうどこのようなオブジェクトを必要とする...私はJSONを持っていると私はそれらの1種のみを必要とする:PHP - REGEX - jsonからキーでオブジェクトを削除する

{"type1":"X","type2": "value2","type3":"value3"}

JSONからこの

{"alerts":[{"type1":"x","type2": "value2","type3":"value3"}, {"type1":"value1","type2": "value2","type3":"value3"}]}

のように私はここで、 "オブジェクトが必要ですTYPE1 "は" X "、それ以外のものはありません。私はREGEXを使わなければならないと思うが、私はそれについて何も知らない。今はサイクルを使用していますが、データが多く、時間がかかります。私はあなたが私を理解してほしい

$carray = json_decode($data); 
foreach($carray->alerts as $alert){ 
    if($alert->type1 != 'X') { continue; } 
    // some code 
} 

は、ここに私の実際のループです。手伝ってくれてありがとう!あなたは、配列をフィルタリングする必要があるため

答えて

0

さて、あなたはおそらくarray_filterを使用する必要があります。

$carray = json_decode($data); 
$alerts = array_filter($carray->alerts, function($alert) { 
    return $alert->type1 == 'X'; 
}); 
foreach($alerts as $alert) { 
    //do something; 
} 
+0

グレート!しかし、それは最速のソリューションですか?あなたは正規表現が遅くなると思いますか? –

関連する問題