原生php如何通过一大段杂乱的数据循环取出需要的字段数据

原生php如何通过一大段杂乱的数据循环取出需要的字段数据,大概就是以下这种数据,如何只取出_source字段里面的值
例:


```json
[
    {
        "took": 21,
        "_shards": {
            "total": 1,
            "successful": 1,
        },
        "hits": {
            "total": {
                "value": 9867,
            },
            "max_score": 19.08063,
            "hits": [
                {
                    "_index": "11223",
                    "_source": {
                        "question": "12312312312",
                        "answer": "123 ",
                        "uptime": "2021-12-18"
                    }
                },
                {
                    "_index": "11223",
                    "_source": {
                        "question": "456",
                        "answer": "456",
                        "uptime": "2021-06-02",
                        "type": null,
                    }
                }
                      ]
          }
    },
{
        "took": 8,
        "timed_out": false,
        "_shards": {
            "total": 1,
            "successful": 1,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": {
                "value": 3868,
                "relation": "eq"
            },
            "max_score": 15.672188,
            "hits": [
                {
                    "_index": "new",
                    "_source": {
                        "question": "123123。",
                        "paperid": "3359303",
                        "uptime": 1662429961
                    }
                },
                {
                    "_index": "new",
                    "_source": {
                        "question": "安徽省  皖",
                        "options": "[]",
                        "old_qid": "150545873",
                        "paperid": "3291952",
                        "uptime": 1662182354
                    }
                },
                {
                    "_index": "new",
                    "_source": {
                        "question": "85236511",
                        "paperid": "4785631",
                        "uptime": 1661438051
                    }
                      ]
        }
    }
]

```

可以使用原生 PHP 中的 json_decode() 函数将 JSON 数据解码为 PHP 对象或关联数组。然后,可以使用循环遍历每个元素,并按需要访问 _source 字段中的值。

这个是json格式,php有专门的json解析的库,调用下。

该回答引用ChatGPT

如有疑问,可以回复我!
你可以使用PHP内置的json_decode()函数将JSON字符串解码为PHP数组,然后通过循环遍历数组中的每个对象,使用PHP的箭头符号 -> 来访问每个对象的 _source 字段。例如,以下代码演示了如何提取 _source 字段:


<?php
// 将JSON字符串解码为PHP数组
$data = json_decode($json_string, true);

// 遍历数组中的每个对象
foreach ($data as $obj) {
    // 访问每个对象的 _source 字段
    $source = $obj['hits']['hits'][0]['_source'];

    // 打印 _source 字段的值
    echo $source['question'] . "\n";
    echo $source['answer'] . "\n";
    echo $source['uptime'] . "\n";
}

请注意,上述代码只提取了数组中的第一个对象的 _source 字段。如果您需要提取所有对象的 _source 字段,则需要在循环中使用另一个嵌套循环。