Ik kan een array niet fatsoenlijk printen
Ik ben echt ten einde raad. Wat ik probeer is om via een API (Slack) informatie op te vragen in mijn PHP script. Ik krijg als respons een reeks JSON tekst die ik netjes decode naar een array. De informatie die ik wil hebben uit deze brei van informatie is het gedeelte. Ik moet weten welke members lid zijn van deze channel.
members":["U04551LJH","U1ARE4YF2","U8DE7ERJA"] in dit geval.
Deze informatie moet ik hebben en netjes uit kunnen lezen. Maar zodra ik dan specifiek iets op probeer te zoeken in de array gaat het mis.
De ruwe data komt binnen en zet ik in een array genaamd $resultUsers.
Dit is de print_r data :
Quote:
{"ok":true,"group":{"id":"GBYP4A8F4","name":"chatting-agents","is_group":true,"created":1532806306,"creator":"U1ARE4YF2","is_archived":false,"name_normalized":"chatting-agents","is_mpim":false,"is_open":true,"last_read":"1532980806.000508","latest":{"text":"As of now, Victor is accepting chats.","username":"Livechat Pro BOT","bot_id":"BBW24MT1A","type":"message","subtype":"bot_message","ts":"1532980806.000508"},"unread_count":0,"unread_count_display":0,"members":["U04551LJH","U1ARE4YF2","U8DE7ERJA"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"Agents who are currently accepting chats are automatically invited to this channel. Agents not accepting chats will be kindly escorted out again :wink:","creator":"U1ARE4YF2","last_set":1532807052}}}
Vervolgens gebruik ik json_encode en plaats ik het in $Users. De data ziet er dan zo uit.
Quote:
Array ( [ok] => 1 [group] => Array ( [id] => GBYP4A8F4 [name] => chatting-agents [is_group] => 1 [created] => 1532806306 [creator] => U1ARE4YF2 [is_archived] => [name_normalized] => chatting-agents [is_mpim] => [is_open] => 1 [last_read] => 1532980806.000508 [latest] => Array ( [text] => As of now, Victor is accepting chats. [username] => Livechat Pro BOT [bot_id] => BBW24MT1A [type] => message [subtype] => bot_message [ts] => 1532980806.000508 ) [unread_count] => 0 [unread_count_display] => 0 => Array ( [0] => U04551LJH [1] => U1ARE4YF2 [2] => U8DE7ERJA ) [topic] => Array ( [value] => [creator] => [last_set] => 0 ) [purpose] => Array ( [value] => Agents who are currently accepting chats are automatically invited to this channel. Agents not accepting chats will be kindly escorted out again :wink: [creator] => U1ARE4YF2 [last_set] => 1532807052 ) ) )
Nu wil ik daar dus de ID's hebben uit de sectie in deze array. Ik probeer dat met allerlei soorten code:
Quote:
echo $Users[0] -> members;
echo $Users['members'];
echo $Users[0]['members'];
echo $Users -> members;
echo $Users['members'];
echo $Users[0]['members'];
echo $Users -> members;
Maar wat ik ook probeer, ik krijg geen respons. Ik krijg ook geen null te zien of een andere foutmelding, het blijft gewoon leeg. De rest van mijn code werkt gewoon, maar de output van deze array is dan gewoon totaal onzichtbaar. Het is alsof het geen array is en daardoor niet werkt. Ik snap er echt helemaal niks van. Ik gebruik ook een andere API en daar werkt het allemaal wel. Ik kan dan bijvoorbeeld : $userAgentArray[0]['name']; intypen en ik krijg dan netjes de naam.
Weet iemand wat ik precies fout doe met deze opgekregen API data? Bij voorbaat dank!
Mvg,
Tristan.
Gewijzigd op 30/07/2018 23:15:16 door Tristan Weber
Zet je print_r tussen <pre> tags, en je ziet het in een mooi boomdiagram i.p.v. als een spaghettisliert.
Quote:
Vervolgens gebruik ik json_encode en plaats ik het in $Users.
Uhhh... Je ontvangt JSON, zou dat dan niet json_decode() moeten zijn?
Om hier een associatief array van te maken dient de tweede parameter op true gezet te worden, oftewel:
Om dit makkelijk te debuggen zou je de volgende hulpfuncties kunnen gebruiken:
Code (php)
Ook debugging dient veilig te gebeuren - als je in een HTML-context zaken debugged kunnen hier snippets javascript in zitten die onbedoeld informatie doorspelen naar derden... ook dit wil je onschadelijk maken.