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.

<?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);

?>
Volgens mij maak je het iets ingewikkelder dan nodig is.
<?php
$auto = array(
'Volvo' => 'XC90',
'BMW' => 'X5',
'Toyota' => 'Highlander'
);

print_r($auto);
?>
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:

<?php $output = '{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';?>


En daarna vervang ik dan wat tekens:

<?php 

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

?>


En dat wil ik dan vervolgens als array gaan gebruiken.
En die string is een JSON-formatted string. En die kan je eenvoudig met [php]json_decode[/php] kan 'ontrafelen' tot een leesbare array.

<?php
$string='{"id":1,"Naam":"Jan","Achternaam":"Jansen"}';
$json = json_decode($string);
print_r($json);
?>
>> En die string is een JSON-formatted string. En die kan je eenvoudig met json_decode kan 'ontrafelen' tot een leesbare string array.
Juist, dat was een foutje van me.
Belangrijk is dus dat je begrijpt dat voor PHP

<?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()

[size=xsmall]Toevoeging op 09/01/2017 15:21:33:[/size]

>> Juist, dat was een foutje van me.

Maakt niet uit we houden elkaar scherp :-)
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?

<?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>";

?>
Dat waren wij beiden vergeten. Je moet TRUE meegeven als tweede parameter om een array terug te krijgen.

Dus dit gaat goed:
<?php
$array = json_decode($json, true);
?>

Reageren