2017-08-06 127 views
0

比方说,我做使用YouTube API V3简单的YouTube搜索,我得到这样的回应:挑选一个随机视频从YouTube API JSON响应(PHP)

{ 
"kind": "youtube#searchListResponse", 
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/1MwZbx-vX21eNjUJjkUlNHKCIhI\"", 
"nextPageToken": "CAIQAA", 
"regionCode": "US", 
"pageInfo": { 
    "totalResults": 412, 
    "resultsPerPage": 2 
}, 
"items": [ 
    { 
    "kind": "youtube#searchResult", 
    "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/q2KHbIuwnAhM64HgrqhBqc5xvTI\"", 
    "id": { 
    "kind": "youtube#video", 
    "videoId": "gpZvuZEiINA" 
    }, 
    "snippet": { 
    "publishedAt": "2014-03-30T11:46:50.000Z", 
    "channelId": "UCCaE0Bj6NI-y8_yL1FpcJUw", 
    "title": "Depression-90` instrumental (download link)", 
    "description": "E-Mail: [email protected]\nNew old school instrumental with download link ,Enjoy the beat, I hope you like it!\nPlease comment, rate and subscribe if you like this beat\nI appreciate YOUR support! Peace and respect", 
    "thumbnails": { 
    "default": { 
     "url": "https://i.ytimg.com/vi/gpZvuZEiINA/default.jpg", 
     "width": 120, 
     "height": 90 
    }, 
    "medium": { 
     "url": "https://i.ytimg.com/vi/gpZvuZEiINA/mqdefault.jpg", 
     "width": 320, 
     "height": 180 
    }, 
    "high": { 
     "url": "https://i.ytimg.com/vi/gpZvuZEiINA/hqdefault.jpg", 
     "width": 480, 
     "height": 360 
    } 
    }, 
    "channelTitle": "Ekii020 90` OLDSCHOOL - BOOMBOOMBAP INSTRUMENTALS", 
    "liveBroadcastContent": "none" 
    } 
    }, 
    { 
    "kind": "youtube#searchResult", 
    "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/HXRyGhFaD4Cn0wvF5XPMJKX5tNQ\"", 
    "id": { 
    "kind": "youtube#video", 
    "videoId": "G7ThqpcuPTI" 
    }, 
    "snippet": { 
    "publishedAt": "2017-08-05T23:30:24.000Z", 
    "channelId": "UCsFmkkSVNgvihycqqtjSXgA", 
    "title": "Homeless (Dark Sad Piano Hip Hop Rap Instrumental Beat)", 
    "description": "http://rightbeatradio.com/product/homeless/\n\nI wrote a song about a humble man I met yesterday. We spoke for a while. He just wanted to talk. He was homeless.\n\nI cut some pieces from a few jazz recordings and put them behind a simple piano riff.\n\nThis music has a lot of feeling. Perfectly describes how I felt after our conversation.\n\nTake care.\n\n89 bpm\n\nrightbeatradio.com\ntwitter.com/rightbeatradio", 
    "thumbnails": { 
    "default": { 
     "url": "https://i.ytimg.com/vi/G7ThqpcuPTI/default.jpg", 
     "width": 120, 
     "height": 90 
    }, 
    "medium": { 
     "url": "https://i.ytimg.com/vi/G7ThqpcuPTI/mqdefault.jpg", 
     "width": 320, 
     "height": 180 
    }, 
    "high": { 
     "url": "https://i.ytimg.com/vi/G7ThqpcuPTI/hqdefault.jpg", 
     "width": 480, 
     "height": 360 
    } 
    }, 
    "channelTitle": "Right Beat Radio", 
    "liveBroadcastContent": "none" 
    } 
    } 
] 
} 

我想生成,比如10个结果,但是只能从响应中随机挑选1个(一个)[item]。我如何随机化结果,并且只从整个响应中挑选其中的一个?

我见过功能,如shuffle()array_rand()但这些似乎不是我需要的功能。

我还看到一个片段,它是这样的:

$array = json_decode($JSON, true); 
$random_entry = array_rand($array['items'], 1); 
$json_data = json_encode($random_entry); 

我已经试过了,但它仅返回字符串像的“nextPageToken”或“种”等

我会喜欢挑选一个整个[item],并抓住其所有相关[snippet]数据,如渠道ID,标题,描述,缩略图等

任何人都可以点我在正确的方向?

回答

1

尝试此

$array = json_decode($JSON, true); 
$items = $array['items']; 
$random_key = array_rand($items, 1); 
$json_data = json_encode($items[$random_key]); 

array_rand()返回的数组键,而不是数组值。

+0

这是快速和真棒。谢谢你,先生。 – anthonyCam