2016-07-18 10 views
0

json_from_db:Looping JSON in Php

{ 
    "id": 23, 
    "positions": "[{\"col\":2,\"row\":1,\"size_x\":10,\"size_y\":3}]", 
    "styles": "\"position: absolute; min-width: 135px; min-height: 160px;\"", 
    "created_at": "2016-07-18 02:40:36", 
    "updated_at": "2016-07-18 02:40:36" 
} 

Looping in PHP:

$positions = json_from_db 
foreach($positions->position as $value) { echo $value->col} 

Invalid argument geliefert Fehler

ich den Wert von col erhalten möchten, sixe_x und size_y

Aktualisieren

unten Antworten sind richtig, aber wollen

auch Werte von Stilen zu bekommen
+0

dekodieren es zuerst arbeiten kann – Ghost

+0

ich meine Antwort aktualisiert mit Ihrer aktualisierten Eingabe. –

+0

alle Antworten waren korrekt, upvoted –

Antwort

1

Versuchen Sie, meine Quelle xD

$positions = json_decode('{ 
"id": 6, 
"positions": [ 
    { 
     "col": 6, 
     "row": 1, 
     "size_x": 2, 
     "size_y": 2 
    } 
], 
"created_at": "2016-07-17 23:36:47", 
"updated_at": "2016-07-17 23:36:47" 
}'); 
echo 'col: '.$positions->positions[0]->col.'<br>'; 
echo 'row: '.$positions->positions[0]->row.'<br>'; 
echo 'size_x: '.$positions->positions[0]->size_x.'<br>'; 
echo 'size_y: '.$positions->positions[0]->size_y.'<br>'; 

Sie

col: 6 
row: 1 
size_x: 2 
size_y: 2 
1

Sie müssen verwenden json_decode() erhalten führen.

$arr = '{"id":6,"positions":" [{\"col\":6,\"row\":1,\"size_x\":2,\"size_y\":2}]","created_at":"2016-07-17 23:36:47","updated_at":"2016-07-17 23:36:47"}'; 
$positionsArr = json_decode($arr,true); 
$positions = json_decode($positionsArr["positions"],true); 
foreach($positions as $value) 
{ 
    echo "size x:". $value['size_x']. "\n size y: ". $value['size_y']; 
} 

Live-Demo: Click Here

1

Sie müssen die JSON entschlüsseln, bevor Sie mit den Daten

$json_obj = json_decode($json_from_db); 
$positions = $json_obj->positions; 

foreach($positions as $position){ 
    echo $position->col . "<br/>"; 
} 

Live demo.