@th1s

Как выполнить поиск в JSON?

Имеетеся json такого формата

JSON""
"data":[
		{
			"txnId":12615777480,
			"personId":77777777,
			"date":"2018-04-01T21:01:51+03:00",
			"errorCode":0,
			"error":null,
			"status":"SUCCESS",
			"type":"IN",
			"statusText":"Success",
			"trmTxnId":"322605711",
			"account":"+78888888",
			"sum":{
			"amount":1,
			"currency":643
		},
			"commission":{
			"amount":0,
			"currency":643
		},
			"total":{
			"amount":1,
			"currency":643
		},
			"provider":{
			"id":7,
			"shortName":"QIWI Кошелек",
			"longName":"QIWI Кошелек",
			"logoUrl":null,
			"description":null,
			"keys":"мобильный кошелек, кошелек, перевести деньги, личный кабинет, отправить деньги, перевод между пользователями",
			"siteUrl":null,
			"extras":[
			]
		},
			"source":null,
			"comment":"77098646",
			"currencyRate":1,
			"paymentExtras":[
		],


как найти в нем значение "comment":"77098646", и если оно равно 77098646 то присвоить переменной $status = 1 если не найден то 0;

Спасибо.
  • Вопрос задан
  • 877 просмотров
Решения вопроса 1
$json = '...';
$data = json_decode($json, true);
$comment = 77098646;
$results = array_filter($data['data'], function ($item) use ( $comment ) {
    return $item['comment'] == $comment;
});
$status = $results ? 1 : 0;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Zabolots
Вы можете, например, применить функцию json_decode() для преобразования json в массив, после работать как с массивом.
А далее Вам надо уточнить: если равно 77098646, то 1, если не найден, то 0, а если найдено значение, но другое, то чему будет равен $status? Но это уже работа с привычным массивом.
Ответ написан
Комментировать
gromdron
@gromdron
Работаю с Bitrix24
Если Вы не хотите работать с json, то почему вы не пробовали работать с ним как с строкой?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы