Я очень новичок в PHP, и я даже не знаю JSON. Кроме того, я не мог понять, как выразить это в вопросе. Мой вопрос:Как получить разные столбцы с JSON (PHP)?
Мне нужно сделать данные JSON с PHP с данными из базы данных. Итак, каков мой ожидаемый результат;
{ "canFireAPICalls": true, "ads": { "servers": [ { "type": "OpenX", "apiAddress": "http://openx.openvideoads.org/openx/www/delivery/fc.php", } ], "schedule": [ { "zone": "5", "position": "pre-roll" }, { "zone": "33", "width": 450, "height": 50, "startTime": "00:00:05", "duration": "15" } ], } }
Что я написал в PHP:
while ($doZones->fetch() && $row = $doZones->toArray()) {
$row_array['zone'] = $row['zoneid'];
$row_array['position'] = $row['delivery'];
if($row['delivery'] == 0 || $row['delivery'] == 1 || $row['delivery'] == 4){
$row_array['width'] = $row['width'];
$row_array['height'] = $row['height'];
}
array_push($return_arr,$row_array);
}
$resultJSON .=json_encode($return_arr);
И мой выход
{ "canFireAPICalls": true, "ads": { "servers": [ { "type": "OpenX", "apiAddress": "http://openx.openvideoads.org/openx/www/delivery/fc.php", } ], "schedule":[{"zone":"3","position":"6"},{"zone":"2","position":"6"},{"zone":"4","position":"6"},{"zone":"5","position":"6"},{"zone":"6","position":"1","width":"468","height":"60"},{"zone":"7","position":"6","width":"468","height":"60"},{"zone":"8","position":"0","width":"120","height":"600"},{"zone":"9","position":"7","width":"120","height":"600"},{"zone":"10","position":"0","width":"120","height":"600"},{"zone":"11","position":"0","width":"728","height":"90"},{"zone":"12","position":"0","width":"120","height":"90"},{"zone":"13","position":"1","width":"468","height":"60"},{"zone":"14","position":"3","width":"468","height":"60"},{"zone":"15","position":"1","width":"560","height":"40"},{"zone":"16","position":"4","width":"468","height":"60"},{"zone":"17","position":"6","width":"468","height":"60"},{"zone":"18","position":"6","width":"468","height":"60"},{"zone":"19","position":"7","width":"468","height":"60"}] } }
Если вы заметили, даже там не должно быть ширина и высота, есть. Я хочу только ширину и высоту, когда $ row ['delivery'] равно 0,1 или 4. Но если он найдет значение 0,1 или 4, то даже если следующая строка не равна 0,1 или 4, печатает ширину и высоту. Есть ли способ исправить это? Я не знаю JSON и только начинал с PHP. Прямо сейчас, я не забочусь о недостающих тегах, например, длительности или написании предварительного ролика. Я позабочусь о них после того, как я это исправлю.
это не имеет ничего общего с JSON, убедитесь, что вы получаете правильные данные в '$ return_arr'; т. е. использовать 'print_r ($ return_arr);' и посмотреть, что в нем – scibuff
вы можете использовать 'json_encode ($ array)' и 'json_decode ($ value)' in build php function – Poonam