Я не знаю, существует ли эта вещь или существуют лучшие практики.
У меня есть строка json, и я хотел бы узнать, можно ли извлекать данные из этого json, используя строку запроса, как в sql.
Пример с этим json:
[ { "user": [ { "id": 1, "name": "Smith", "visits": [ { "id": 1, "date": "2016-08-30 16:00:00", "pageViews": 18 } ] }, { "id": 2, "name": "Willis", "visits": [ { "id": 2, "date": "2016-08-30 18:00:00", "pageViews": 34 } ] } ] } ] 
  Если я выполняю запрос типа SELECT user.name WHERE user.visits.pageViews > 20 Я получаю Willis 
Else, что лучший способ сделать что-то подобное в PHP?
благодаря
  Используйте jq который является правильным инструментом для работы.  Предположим, что 39233103.json содержит образец ввода в quesiton. 
Образец прогона
 $ jq '.[]|.user[]|select(.visits[].pageViews>20)|.name' 39233103.json "Willis" 
  Чтобы получить raw output используйте параметр -r 
 $ jq -r '.[]|.user[]|select(.visits[].pageViews>20)|.name' 39233103.json Willis 
  Теперь, чтобы сделать это из php, вы можете использовать [exec] .  Предположим, что приведенный ниже сценарий называется 39233103.php 
 <?php $output=array(); exec("jq -r '.[]|.user[]|select(.visits[].pageViews>20)|.name' 39233103.json", $output); foreach ($output as $val){ echo $val."\n"; } ?> 
Вывод
 $ php 39233103.php Willis 
  Если вы не знакомы с jq , [это] является хорошей отправной точкой.