原生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 字段,则需要在循环中使用另一个嵌套循环。