2012-01-01 23 views
7

Vì vậy, tôi có một đối tượng json trong đó có một cấu trúc như sau:PHP Search JSON cho giá trị

{ 
"John Doe": [ 
    { 
     "childName": "Harry", 
     "childAge": 15, 
     "childGender": "Male" 
    }, 
    { 
     "childName": "Sally", 
     "childAge": 9, 
     "childGender": "Female" 
    }, 
], 
"Miss Piggy": [ 
    { 
     "childName": "Jane", 
     "childAge": 20, 
     "childGender": "Female" 
    } 
], 

}

Những gì tôi muốn làm là có thể để thực hiện một truy vấn cho childName, childAge hoặc childGender và trả lại đối tượng con đó nếu nó được tìm thấy.

Ví dụ:

searchJson($jsonObj, 'childName', 'Sally') // returns {"childName":"Sally", "childAge":9,"childGender":"Female"} 

Điều gì sẽ là phương pháp tốt nhất lúc đi lúc này?

Trả lời

18
function searchJson($obj, $field, $value) { 
    foreach($obj as $item) { 
     foreach($item as $child) { 
      if(isset($child->$field) && $child->$field == $value) { 
       return $child; 
      } 
     } 
    } 
    return null; 
} 
+0

Đừng quên 'json_decode' !!! –

+0

@JosephSilber: '$ obj' là một đối tượng' stdClass', sẽ là kết quả của 'json_decode()'. –

+0

Logic đơn giản, hoạt động! Cảm ơn – Baehr

Các vấn đề liên quan