Извлечение всех идентификаторов с помощью PHP из строки структурированного журнала

#php #arrays #json #loops

#php #массивы #json #циклы

Вопрос:

Мне нужно как-то обработать следующий рекурсивный вывод журнала с помощью PHP, создав массив или закодировав его в json, конечная цель — получить значение «id» каждого раздела getusers, я провел несколько тестов, но не могу получить хороший результат.

Это всего лишь часть строки журнала, содержащая все разделы getusers (их может быть тысячи).:

 getusers:           {
"user": {
    "id": 1569976517,
    "type": "user",
    "first_name": "Mike",
    "username": "MikesNick",
    "verified": false,
    "restricted": false,
    "status": {
        "_": "userStatusRecently"
    },
    "access_hash": -7018287513210933137,
    "bot_nochats": false
},
"date": 1613450429,
"role": "user"
}
getusers:           {
"user": {
    "id": 717418136,
    "type": "user",
    "first_name": "John",
    "last_name": "Smith",
    "username": "JhonsNick",
    "verified": false,
    "restricted": false,
    "status": {
        "_": "userStatusOffline",
        "was_online": 1613230815
    },
    "access_hash": 1814429223003924316,
    "bot_nochats": false
},
"date": 1613245788,
"role": "user"
}
 

Каков наилучший способ управлять этим и восстановить нужные мне данные?

Комментарии:

1. Является ли полный журнал допустимым JSON? Эта часть не является?

2. @0stone0 не может управлять getusers: part

3. @MattC это не то, о чем вас просили. P.S. Если у вас есть попытка решить эту проблему, было бы разумно показать ваш код, тогда мы знаем, где вы находитесь, и лучше представляем, где вы застряли

4. его недопустимый json

Ответ №1:

Я нашел способ извлечь идентификаторы из журнала, используя следующий код

 $exploded = explode("getusers:",$logString);

foreach($exploded as $group){
   $decoded = json_decode($group,true);
   echo $decoded["user"]["id"]."<br/>";
}