PHP: поиск в массиве объектов

146
25 января 2018, 20:06

Добрый день. Получаю историю транзакций 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? Если потребуется дополнительная информация, без проблем предоставлю.

Answer 1

При декодировании 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;
READ ALSO
Оставить только буквы и цифры в поисковом запросе сайта!

Оставить только буквы и цифры в поисковом запросе сайта!

Суть вопрос в следующем: Пользователь вводит в поисковую строку номер 136АВ54:00%21 и жмет поиск!

138
Отправка почтовых писем через smtp Яндекса

Отправка почтовых писем через smtp Яндекса

Доброго времени суток, давно ищу простой и понятный код для отправки писем через smtpВезде где не искал, предлагают или огромную библиотеку...

145
PHP скрипт завершается без причины

PHP скрипт завершается без причины

Имеется PHP cronjob скрипт, который импортирует данные в БД WordPressДанных много, ориентировочное время выполнения должно быть 1

149
Парсинг Amazon Review средствами PHP или JavaScript

Парсинг Amazon Review средствами PHP или JavaScript

Пытаюсь сделать функциональность в WordPress которая бы парсила по URL определенное ревью с Amazon и потом добавляла его ко мне на сайтНе могу спарсить

140