Ik kan een array niet fatsoenlijk printen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Tristan Weber

Tristan Weber

30/07/2018 23:05:27
Quote Anchor link
Beste PHP hulp,

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;


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
 
PHP hulp

PHP hulp

26/11/2024 12:48:10
 
Adoptive Solution

Adoptive Solution

31/07/2018 12:44:30
Quote Anchor link
Lukt dit :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$Users['group']['members'][0]
 
- Ariën  -
Beheerder

- Ariën -

31/07/2018 12:54:50
Quote Anchor link
Een tipje:
Zet je print_r tussen <pre> tags, en je ziet het in een mooi boomdiagram i.p.v. als een spaghettisliert.
 
Thomas van den Heuvel

Thomas van den Heuvel

31/07/2018 13:47:19
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$userData
= json_decode($JSONSourceData, true);
?>


Om dit makkelijk te debuggen zou je de volgende hulpfuncties kunnen gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// escaping in HTML context
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


// generieke dump functie
function dump($in) {
    if (is_array($in)) {
        echo '<pre>'.escape(print_r($in, true)).'</pre>';
    }
else {
        echo '<pre>'.escape($in).'</pre>';
    }
}

?>

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.
 



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.