Array met array keys

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G Jansma

G Jansma

09/01/2017 14:37:42
Quote Anchor link
Hallo,

Ik wil een array maken met array keys, maar ik zit een beetje vast. Het eerste komt uit het voorbeeld van w3schools, maar hoe kan ik zoals het tweede deel zelf de structuur ingeven? Nu zet hij alles in array[0]. Ik heb namelijk tekst in die opmaak ($auto) die ik wil omzetten in een array.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    $a
=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
    print_r($a);
    
    $auto = '"Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander"';
    $a=array($auto);
    print_r($a);

?>
Gewijzigd op 09/01/2017 15:06:40 door G Jansma
 
PHP hulp

PHP hulp

24/11/2024 03:37:41
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/01/2017 14:51:26
Quote Anchor link
Volgens mij maak je het iets ingewikkelder dan nodig is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $auto
= array(
        'Volvo' => 'XC90',
        'BMW' => 'X5',
        'Toyota' => 'Highlander'
    );

    print_r($auto);
?>
Gewijzigd op 09/01/2017 14:53:26 door Frank Nietbelangrijk
 
G Jansma

G Jansma

09/01/2017 15:06:16
Quote Anchor link
Ik weet niet of ik het ingewikkelder maak, maar ik raak iig een beetje verstrikt. Dat is eigenlijk dat voorbeeld van w3schools ja. Maar ik begin met tekst in de volgende opmaak:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $output = '{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';?>


En daarna vervang ik dan wat tekens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

    $output
= str_replace(array("{", "}"), "", $output);
    $output = str_replace(":", "=>", $output);

?>


En dat wil ik dan vervolgens als array gaan gebruiken.
 
- Ariën  -
Beheerder

- Ariën -

09/01/2017 15:09:41
Quote Anchor link
En die string is een JSON-formatted string. En die kan je eenvoudig met json_decode kan 'ontrafelen' tot een leesbare array.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$string
='{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';
$json = json_decode($string);
print_r($json);
?>
Gewijzigd op 09/01/2017 15:19:59 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/01/2017 15:19:10
Quote Anchor link
>> En die string is een JSON-formatted string. En die kan je eenvoudig met json_decode kan 'ontrafelen' tot een leesbare string array.
 
- Ariën  -
Beheerder

- Ariën -

09/01/2017 15:20:14
Quote Anchor link
Juist, dat was een foutje van me.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/01/2017 15:20:44
Quote Anchor link
Belangrijk is dus dat je begrijpt dat voor PHP

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $output = '{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';?>


een string is en dat je die met json_decode() kan omzetten naar een (php) array.

En andersom kan ook met json_encode()

Toevoeging op 09/01/2017 15:21:33:

>> Juist, dat was een foutje van me.

Maakt niet uit we houden elkaar scherp :-)
 
G Jansma

G Jansma

09/01/2017 15:40:32
Quote Anchor link
Kijk aan, bedankt!

Nog één vraagje. Als ik die $json print dan staat er stdClass Object bij, maar die kan ik niet gebruiken als array in PHP?

Ik vond wel onderstaande, maar doe ik dan een dubbele handeling?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$string
='{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';
$json = json_decode($string);
$array = json_decode(json_encode($json), true);

echo "<pre>";
print_r($array);
echo "</pre>";

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/01/2017 16:31:01
Quote Anchor link
Dat waren wij beiden vergeten. Je moet TRUE meegeven als tweede parameter om een array terug te krijgen.

Dus dit gaat goed:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$array
= json_decode($json, true);
?>
Gewijzigd op 09/01/2017 17:54:27 door Frank Nietbelangrijk
 



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.