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

sebster
sebster (19.530 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 (195.720 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 (19.530 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 (195.720 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 (19.530 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 (195.720 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 (19.530 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 (195.720 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 (195.720 point)
www.simitu.dk
Og du får et svar.

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

sebster
sebster (19.530 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

Flyt billede op

Oprettet den 18. april 2015 kl. 17.31
ej147 giver 60 point for svar | Giv et svar »

session_start og så forsvinder alt data

Oprettet den 17. april 2015 kl. 23.36
morticms giver 200 point for svar | Giv et svar »

Mail alias

Oprettet den 17. april 2015 kl. 23.34
pme giver 30 point for svar | Giv et svar »






Computerworld

Teaser billede

Google Chrome lukker for Java-baseret NemID

Google har frigivet Chrome version 42, og her fungerer Java-plugin ikke som standard. Det driller blandt andet NemID-brugerne.

CIO

Teaser billede

Ineffektiv og gammeldags: Har antivirus overhovedet nogen fremtid?

De traditionelle antivirus-løsninger bliver mere og mere ineffektive og kørt bag af dansen. Har de overhovedet en fremtid som beskyttelsesmiddel i virksomhederne?

Channelworld

Teaser billede

Jubel i dansk it-firma efter kæmpe-ordre: Skal levere et af verdens største ERP-systemer

Allerød-virksomheden Datacon skal levere et af verdens største ERP-systemer til global kunde.

White paper

Teaser billede

De 10 bud om BYOD

Sådan lader du medarbejderne bruge egne apps og mobile enheder og sørger samtidigt for, at de kan være produktive i et sikkert it-miljø.



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