Alpha2Bravo Posted April 29, 2015 Share Posted April 29, 2015 I am trying to display Json data using PHP but I have ran into a problem. This is the json: }, { "node_title": "Room", "Room description": "This is Room 1", "Room name": "Room 1", "Room Type": "Bedroom", "Room attributes": [ ] }, { "node_title": "Room", "Room description": "This is Room 2", "Room name": "Room 2", "Room Type": "Bedroom", "Room attributes": [ This is my PHP: <?php $code = isset($_POST['search']) ? $_POST['search'] : '123nocode123456'; $roomjson = file_get_contents("http://my.json.com/". $code); $roomobj = json_decode($roomjson); ?> <?php echo '<div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>'; if (empty($roomobj)) { echo '</div>'; }else{ if ($roomobj{0}->{'Room Type'} == 'Bedroom') { echo '<li role="presentation"><a href="#bedroom1" aria-controls="bedroom1" role="tab" data-toggle="tab">'; echo ($roomobj{0}->{'Room name'}); echo '</a></li></div>'; ?> The problem is, I have two json 'nodes' that have the same 'Room Type' value, so how can I differentiate between the two? But I need to display both of them. I think I can use foreach but I need the values 'Room Name' to be in separate <li>. Link to comment https://forums.phpfreaks.com/topic/295955-retrieving-json-with-duplicate-values/ Share on other sites More sharing options...
Ch0cu3r Posted April 29, 2015 Share Posted April 29, 2015 Yes you would need to use a foreach loop to output all rooms returned in the json. if (!empty($roomobj)) { // loop over all rooms foreach($roomobj as $room) { if ($room->{'Room Type'} == 'Bedroom') { echo '<li role="presentation"><a href="#bedroom1" aria-controls="bedroom1" role="tab" data-toggle="tab">'; echo ($room->{'Room name'}); echo '</a></li>'; } } } echo '</div>'; // closes tabpanel div Link to comment https://forums.phpfreaks.com/topic/295955-retrieving-json-with-duplicate-values/#findComment-1510328 Share on other sites More sharing options...
Alpha2Bravo Posted April 29, 2015 Author Share Posted April 29, 2015 Yes you would need to use a foreach loop to output all rooms returned in the json. if (!empty($roomobj)) { // loop over all rooms foreach($roomobj as $room) { if ($room->{'Room Type'} == 'Bedroom') { echo '<li role="presentation"><a href="#bedroom1" aria-controls="bedroom1" role="tab" data-toggle="tab">'; echo ($room->{'Room name'}); echo '</a></li>'; } } } echo '</div>'; // closes tabpanel div But won't that display the 'Room Names' all together? I need each Room Name to be in a separate <li> you see Link to comment https://forums.phpfreaks.com/topic/295955-retrieving-json-with-duplicate-values/#findComment-1510330 Share on other sites More sharing options...
Alpha2Bravo Posted April 29, 2015 Author Share Posted April 29, 2015 Sh*t the bed it worked. Thanks bro!! Link to comment https://forums.phpfreaks.com/topic/295955-retrieving-json-with-duplicate-values/#findComment-1510331 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.