2011-01-21 5 views
1

json_decode()을 사용하여 데이터를 설정하는 JSON 배열이 있습니다.필터 json 배열 php by string

배열의 특정 항목과 일치하는 것을 찾고 있는데 일치하는 경우 배열의 전체 "행"을 반환해야합니다. 발견하는 모든 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

네 위의 대답, 감사 captn! –

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

을 수정

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; 
}