Oprettet man. d. 14. januar 2013 kl. 09:08:21

sebster
sebster (18.795 point. Point ude: 0)


Træk variabler ud i array fra string.

Hej Eksperter

Jeg har et output from en database via et api som ser således ud:

$output ="[{"id":"100","name":"ditnavn","title":"dintitel"}]

Dette vil jeg gerne kunne hive ud som et array, give variablerne en værdi og sætte det ind i et foreachloop.

Nogle der kan hjælpe?

Skrevet man. d. 14. januar 2013 kl. 11:22:03| #1

jakobdo
jakobdo (194.060 point)
www.simitu.dk
Det ligner json.
Prøv:

$output = '[{"id":"100","name":"ditnavn","title":"dintitel"}]';
$ditarray = json_decode($output);

Skrevet man. d. 14. januar 2013 kl. 11:45:32| #2

sebster
sebster (18.795 point)
Hvis jeg sætter det i et array

foreach ($ditarray as $k => $v) {
    echo "\$ditarray[$k] => $v.\n";
}

Burde den så ikke skrive output?

Er ikke lige så meget ind over json.

Skrevet man. d. 14. januar 2013 kl. 11:51:24| #3

jakobdo
jakobdo (194.060 point)
www.simitu.dk
Det er et objekt.
Prøv at se hvad print_r($ditarray); smider retur. :o)

Skrevet man. d. 14. januar 2013 kl. 12:53:44| #4

sebster
sebster (18.795 point)
ja det er er mit output.
Array ( [0] => stdClass Object ( [id] => 100 [name] => ditnavn [title] => dintitel ) )

Kan godt se det er inde i et object.
Hvordan får jeg kun arrayet frem?

Skrevet man. d. 14. januar 2013 kl. 13:50:09| #5

jakobdo
jakobdo (194.060 point)
www.simitu.dk
Lige i dette tilfælde burde så kunne lave:

<?php

$output = '[{"id":"100","name":"ditnavn","title":"dintitel"}]';
$ditarray = json_decode($output);
$json = $ditarray[0];
echo $json->id;
echo '<br />';
echo $json->name;
echo '<br />';
echo $json->title;

?>

Skrevet man. d. 14. januar 2013 kl. 14:16:43| #6

sebster
sebster (18.795 point)
Det virker fint. Dog skal det siges at jeg skal have denne til at loope så den også tager resten af posterne med fra droppet.

Skrevet man. d. 14. januar 2013 kl. 14:39:24| #7

jakobdo
jakobdo (194.060 point)
www.simitu.dk
$output = '[{"id":"100","name":"ditnavn","title":"dintitel"}]';
$ditarray = json_decode($output);
foreach($ditarray as $json){
  echo $json->id;
  echo '<br />';
  echo $json->name;
  echo '<br />';
  echo $json->title;
}

Skrevet man. d. 14. januar 2013 kl. 14:39:33| #8

jakobdo
jakobdo (194.060 point)
www.simitu.dk
Og du får et svar.

Skrevet man. d. 14. januar 2013 kl. 15:04:51| #9

sebster
sebster (18.795 point)
Tak for hjælpen. Det virker perfekt, og fik også lært lidt undervejs.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

PDF YII strong virker ikke

Oprettet den 21. november 2014 kl. 17.01
milos14098 giver 100 point for svar | Giv et svar »

Dato - Vis indlæg fra denne uge

Oprettet den 21. november 2014 kl. 10.24
steffenbloch giver 200 point for svar | Giv et svar »

Redundans og loadbalancing på dynamisk hjemmeside

Oprettet den 21. november 2014 kl. 00.44
moddi100 giver 30 point for svar | Giv et svar »

Seneste guides

Malwarebytes version 2.0.3.1025
Find ejeren af et vilkårligt domæne
Undgå reklamerne på iPad





Computerworld

Teaser billede

Nu er det slut med Java til NemID: Her er den nye løsning

Om få dage er det helt slut med at benytte Java til NemID. Læs her, hvad der kommer til at erstatte Java-appletten.

Comon

Teaser billede

Fire lette trin: Få hastigheden tilbage i din iPhone eller iPad

Apples iOS 7 har masser af fine funktioner, men styresystemet har desværre også den uheldige sideeffekt, at det gør ældre iPhones og iPads sløve. Se her, hvordan du løser problemerne.

Channelworld

Teaser billede

Dansk it-direktør anholdt i kæmpe svindelsag efter stor politi-razzia

Direktøren i et jysk it-firma har i en mere end en måned siddet fængslet som mistænkt i en omfattende svindelsag.

White paper

Teaser billede

It-ledelse i trange tider

Læs her hvordan it-ledelsen kan skabe omkostningsbesparelser og optimere virksomhedens arbejdsgange.



Udgiver · © 2014 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger