我有一个API的输出,由以下元素列表组成:
{
"data": [
{
"url": "https://parktheater.yesplan.nl/api/event/7036825857-1426512948",
"id": "7036825857-1426512948",
"owner": {
"url": "https://parktheater.yesplan.nl/api/user/365891073-1365159547",
"id": "365891073-1365159547",
"name": "Klaas Seelen"
},
"name": "Ernst, Bobbie en de rest",
"group": {
"url": "https://parktheater.yesplan.nl/api/group/7036832513-1426512948",
"id": "7036832513-1426512948",
"name": "Wij willen water show",
"_type": "group"
},
"starttime": "2016-05-01T16:00:00+02:00",
"endtime": "2016-05-01T18:00:00+02:00",
"locations": [
{
"url": "https://parktheater.yesplan.nl/api/location/383044097-1365160415",
"id": "383044097-1365160415",
"name": "Grote Zaal",
"_type": "location"
}
]
}
这些数据作为一串JSON编码数据提供给我,我将其存储在变量$nextevents
中。
我想过滤掉一些东西,只保留每条记录的某些属性:
答案 0 :(得分:1)
以下是过滤数据的方法:
$json_data = json_decode($nextevents);
$filtered_data = [];
for($i = 0; $i < count($json_data); $i++){
$item = $json_data[$i];
$filtered_data[$i] = array(
"name" => $item["name"],
"group_name" => $item["group"]["name"],
"location_name" => $item["locations"][0]["name"],
"start_time" => $item["starttime"]
);
}
然后你可以使用它。例如,如果您想以与您的示例类似的方式输出它:
for($i = 0; $i < count($filtered_data); $i++){
$item = $filtered_data[$i];
echo "Name : ".$item["name"].", ".
"Group name : ".$item["group_name"].", ".
"Location : ".$item["location_name"].", ".
"Start time : ".$item["start_time"].
"\n");
}
我认为一般的想法是过滤数据,最实用的方法是重建另一个对象,只保留你想要的东西。