2016-07-18 5 views
0

json_from_db:Looping JSON в 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 в PHP:

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

Недействительного аргумент ошибка

Я хочу, чтобы получить значение седловины, sixe_x и size_y

Обновление

ответы ниже, являются правильными, но хотят получить значение стилей, а

+0

расшифровывает это первый – Ghost

+0

Я обновил свой ответ с вашим обновленным вводом. –

+0

все ответы были правильными, но поддерживались –

ответ

1

Попробуйте мой источник 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>'; 

Вы получите результат

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

Вы должны использовать json_decode().

$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']; 
} 

Живая демонстрация: Click Here

1

Вы должны декодировать JSON, прежде чем вы можете работать с данными

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

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

Live demo.