Добрый день. Получаю историю транзакций QIWI-кошелька по API. В ответ приходит массив объектов в формате JSON:
{"data":
[{
"txnId":9309,
"personId":79112223344,
...
"sum":{
"amount":70,
"currency":"RUB"
},
"source": {},
"comment":"Test comment #1",
...
}],
"nextTxnId":9001,
"nextTxnDate":"2017-01-31T15:24:10+03:00"
}
Полученный результат записываю в переменную $result и далее завожу 2 переменные:
$searchComment = "Test comment #1";
$checkComment = false;
Каким образом (желательно на PHP) можно проверить, содержится ли в массиве объектов строка $searchComment и, если содержится, то присвоить переменной $checkComment значение true? Если потребуется дополнительная информация, без проблем предоставлю.
При декодировании json используйте второй параметр, который поможет преобразовать объект в массив. Далее извлеките все комменты с помощью array_column. После чего используйте array_search для поиска значения. В случае успеха будет возвращен индекс элемента. Если же элемент не найден, будет возвращено false.
$json = '{"data":[{"txnId":9309,"personId":79112223344,"sum":{"amount":70,"currency":"RUB"},"comment":"Test comment #1"}],"nextTxnId":9001,"nextTxnDate":"2017-01-31T15:24:10+03:00"}';
$data = json_decode($json, true);
$comments = array_column($data['data'], 'comment');
$searchComment = "Test comment #1";
$checkComment = array_search($searchComment, $comments) !== false;
Сборка персонального компьютера от Artline: умный выбор для современных пользователей