2011-01-21 26 views
1

json_decode()を使用してデータを設定するJSON配列があります。フィルターjson配列php by文字列

配列の特定の項目と一致するものを探していますが、一致する場合は配列の「行」全体を返す必要があります。見つかったすべてのfilter_array()スニペットのような単一のフィールドだけでなく、 。

誰でも正しい方向に向けることができますか?

データはjson_decode()を呼び出す前に、次のようになります。

[ 
    { 
     "format": "default", 
     "media_url": "http://cpe.delvenetworks.com/000337/011911_redzonefull.mp3", 
     "title": "RZ - Jim Trotter", 
     "thumb_url": "", 
     "date_posted": "2011-01-19 14:58:45", 
     "media_type": "audio" 
    }, 
    { 
     "format": "default", 
     "media_url": "http://cpe.delvenetworks.com/000337/f10bestof2010offense.mp4", 
     "title": "Best of O - 2010", 
     "thumb_url": "http://img.delvenetworks.com/bV7.120x66.jpeg", 
     "date_posted": "2011-01-18 16:01:45", 
     "media_type": "video" 
    }, 
    { 
     "format": "default", 
     "media_url": "http://cpe.delvenetworks.com/000337\f10bestof2010defense.mp4", 
     "title": "Best od D - 2010", 
     "thumb_url": "http://img.delvenetworks.com/UqK.120x66.jpeg", 
     "date_posted": "2011-01-18 16:01:45", 
     "media_type": "video" 
    } 

私はmedia_typeと一致する必要があります。

答えて

3

このようなものはありますか?修正さ

function filter($filter, $array){ 
    $filtered_array = array(); 
    for($i = 0; i < count(array); i++){ 
     if($array[i].media_type == $filter) 
      $filtered_array[] = array[i] 
    } 
    return $filtered_array 
} 
+0

うん上記の解答を修正します! –

0

function filter($filter, $array){ 
    $filtered_array = $array();  
    for ($i = 0; $i < count($array); $i++){ 
     if($array[$i].media_type == $filter) 
      $filtered_array[] = $array[$i]; 
    } 
    return $filtered_array; 
} 
0

PHP


media_type_array($json,$filter) // function name <br/> 
{ 

$filtered_array=array(); 

foreach($json as $key=>$value) 

{ 

foreach($value as $key1=>$value1) 

    { 

     if ($value1==$filter) 
     { 
     $filtered_array[]=$value; 
     } 
    } 

} 

return $filtered_array; 

} 
0

は、感謝のcaptnを

function filter($filter, $array){ 
$filtered_array = array();  // <== array() NOT $array() 
for ($i = 0; $i < count($array); $i++){ // <== count($array) NOT count(array) 
    if($array[$i].media_type == $filter) 
     $filtered_array[] = $array[$i]; 
} 
return $filtered_array; 
}