2017-08-06 1 views
0

Disons que je fais une recherche simple sur youtube en utilisant la version 3 de l'API YouTube, et je reçois une réponse comme ceci:Choisir une vidéo aléatoire de l'API YouTube Réponse 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" 
    } 
    } 
] 
} 

je voudrais générer, disons, 10 résultats, mais alors seulement choisir 1 (un) aléatoire [item] de la réponse. Comment puis-je randomiser les résultats, et ne choisir que l'un d'entre eux de cette réponse entière?

J'ai vu des fonctions telles que shuffle() et array_rand() mais celles-ci ne semblent pas être les fonctions dont j'ai besoin.

J'ai aussi vu un extrait qui va comme ceci:

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

Je l'ai essayé, mais il ne retourne que les chaînes comme « nextPageToken » ou « nature », etc.

Je voudrais comme choisir un ensemble[item] et de saisir toutes ses [snippet] pertinentes données, telles que channelId, le titre, la description, les vignettes, etc.

quelqu'un peut-il me diriger dans la bonne direction?

Répondre

1

Essayez cette

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

array_rand() clé du tableau de retour, pas de valeur de tableau.

+0

C'était rapide et génial. Merci Monsieur. – anthonyCam