2017-08-06 3 views
0

Sagen wir, ich tun, um eine einfache youtube suchen die YouTube API v3 verwenden, und ich bekomme eine Antwort wie folgt aus:Kommissionierung eine zufällige Video von YouTube API JSON Response (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" 
    } 
    } 
] 
} 

Ich möchte, erzeugen, sagen wir, 10 Ergebnisse, aber dann nur 1 (eine) zufällige [item] aus der Antwort. Wie kann ich die Ergebnisse randomisieren und nur eine davon aus der gesamten Antwort auswählen? Ich habe Funktionen wie shuffle() und array_rand() gesehen, aber diese scheinen nicht die Funktionen zu sein, die ich brauche.

Ich habe auch einen Ausschnitt gesehen, das so geht:

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

ich habe versucht, aber es gibt nur Zeichenketten wie „nextpagetoken“ oder „Art“, usw.

würde ich wie ein gesamte[item] holen und

Kann jemand zeigen Sie mir alle seine relevanten [snippet] Daten, wie channelId, Titel, Beschreibung, Thumbnails, usw. greifen in die richtige Richtung?

Antwort

1

starten

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

array_rand Taste() return array, nicht Arraywert.

+0

Das war schnell und fantastisch. Danke mein Herr. – anthonyCam