Разобрать JSON и получить SQL
Имеется JSON который передается браузером на сервер. Этот JSON нужно разобрать так, чтобы получить SQL запрос. Дело в том, что структура у данных всегда одна, а вот вложенность может быть больше или меньше!
Сам JSON:
[{
"5":
[{
"248":
[{
"777" : ""
}]
},
{
"249":
[{
"251" : ""
},
{
"250" : ""
},
{
"252":
[{
"400" : ""
}]
}]
}]
}]
Там где цифры - это значения, а название полей опишу ниже.
Я помещаю этот JSON в json_decode
и получаю массив, с которым далее нужно работать.
После обработки массива, на выходе нужно получить следующий SQL:
district = 5
AND
(
(village = 248 AND street = 777)
OR
(
village = 249
AND
(
street = 251
OR
street = 250
OR
(street = 252 AND house = 400)
)
)
)
Там где district это первый уровень вложенности, village - второй, street - третий и т.д. Я пытался сделать так: Создал массив:
$tables = array("district", "village", "street", "house");
и в зависимости от уровня вложенности подставлял значение.
Структура у JSON всегда одна, а уровней вложенности, как я уже говорил, может быть больше или меньше.