Probleem met mergen twee arrays

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Snelle Jaap

Snelle Jaap

21/09/2017 11:11:07
Quote Anchor link
Hallo,

Ik zit met een probleem wat ik niet opgelost krijg: op een website laad ik facebook posts via hun api, nou hebben sommige posts ook een video, die wil ik graag binnen een iframe plaatsen in een post. Alleen de videos en de posts zitten beide in een ander object.

Ik zal een voorbeeld geven:

Een deel van het posts object ziet er zo uit (hier is via de api geen video informatie in te plaatsen):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
{
   "data": [
      {
         "created_time": "2017-09-12T20:58:21+0000",
         "message": "Vandaag bij Vivienne Westwood Boutique Amsterdam de lichtreclame gemonteerd. Mooi project om te mogen doen.\n\u2705  maatwerk\n\u2705  kwaliteit\n\u2705  betaalbaar\n\ud83d\udc4b  Benieuwd naar de kosten? We helpen je graag!\n- Reclame & Internet - #ontwerp > #productie > #montage",
         "id": "367712570004555_1287302444712225"
      },


En los daarvan heb je het videos object, wat alle videos van een pagina ophaalt, die ziet er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
{
   "data": [
      {
         "embed_html": "\u003Ciframe src=\"https://www.facebook.com/plugins/video.php?href=https\u00253A\u00252F\u00252Fwww.facebook.com\u00252Fwebsite\u00252Fvideos\u00252F1287302444712225\u00252F&width=1280\" width=\"1280\" height=\"720\" style=\"border:none;overflow:hidden\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" allowFullScreen=\"true\">\u003C/iframe>",
         "permalink_url": "/website/videos/1287302444712225/",
         "id": "1287302444712225"
      },


Ik wil graag al deze informatie in 1 loop gebruiken alleen staan ze dus in 2 objecten (json objecten). Mijn idee was om de twee objecten te combineren met array_merge op de volgende manier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$json_object
= file_get_contents("https://graph.facebook.com/v2.10/paginaid/posts?fields=full_picture,message,picture,story,permalink_url,updated_time,from&access_token=mijnaccesstoken");

$feedarray = json_decode($json_object);

$json_objectvideo = file_get_contents("https://graph.facebook.com/v2.10/paginaid/videos?fields=embed_html,permalink_url&access_token=mijnaccesstoken");

$feedvideo = json_decode($json_objectvideo);

$merged = array_merge($feedarray->data, $feedvideo->data);
?>


Wanneer ik $merged print krijg ik beide objecten in 1 grote array, met eerst alle posts en daarna alle videos. Nu is mijn vraag: hoe kan ik de juiste video bij de juiste post krijgen? Mij viel op dat ze op een bepaalde manier aan elkaar zijn verbonden, het id van een post is bijvoorbeeld 367712570004555_1287302444712225 en het id van een video is 1287302444712225 als ik dus het id van de post explode op de underscore en het 2e deel pak heb zijn beide ids gelijk.

Hoe kan ik binnen 1 loop bijvoorbeeld $merged['message'] en $merged['embed_html'] gebruiken en dat hij dan de juiste embed link plaatst bij de juiste message.
 
PHP hulp

PHP hulp

22/09/2020 13:49:17
 
Ward van der Put
Moderator

Ward van der Put

21/09/2017 11:37:39
Quote Anchor link
Als een eventuele video zo duidelijk verbonden is met een post, dan lijkt mij het logisch dat je die onder $merged['message'] hangt als $merged['message']['video'] bijvoorbeeld. 'Mergen' is eigenlijk ook niet helemaal het juiste vertrekpunt: je wilt hier appels en peren juist niet tot één grote moes mergen, omdat je precies wilt zien óf er een video is en, zo ja, wáár die video dan bij hoort.
 
Snelle Jaap

Snelle Jaap

21/09/2017 11:47:05
Quote Anchor link
Ward van der Put op 21/09/2017 11:37:39:
Als een eventuele video zo duidelijk verbonden is met een post, dan lijkt mij het logisch dat je die onder $merged['message'] hangt als $merged['message']['video'] bijvoorbeeld. 'Mergen' is eigenlijk ook niet helemaal het juiste vertrekpunt: je wilt hier appels en peren juist niet tot één grote moes mergen, omdat je precies wilt zien óf er een video is en, zo ja, wáár die video dan bij hoort.

Oke ik snap wat je bedoelt maar hoe zou jij dit dan aanpakken? Hiervoor heb ik beide objecten apart opgehaald en binnen de loop van mijn posts loopte ik de videos, dit gaf alleen als resultaat dat alle videos per post geloopt werden, het lukte me ook niet beide ids te vergelijken op die manier omdat ik dan het post id vergelijk met alle geloopte video ids.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.