使用json数组转换字符串(PHP)

时间:2016-05-28 10:21:37

标签: php mysql json laravel

我将mysql数组存储在mysql中作为字符串

box

当我尝试使用它时

[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]

有一个问题。 $ rate->标记是一个字符串。怎么把它解码到数组?

UPD

当然我尝试使用json_decode,但它返回错误

@foreach ($places as $place) @foreach ($place->rates as $rate) {{var_dump($rate->marks)}} @endforeach @endforeach

解决

我真是个傻瓜。问题不在json_decode中。我试图用{{}}打印结果,需要字符串作为参数。

3 个答案:

答案 0 :(得分:0)

你的json中没有rate,也没有marks

Check Online

$json = '[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]';
$places = json_decode ($json);

foreach ($places as $place)
      var_dump($place->mark);

设计Laravel的代码,在线调试不具备该功能。

让我知道。

答案 1 :(得分:0)

您需要json_decode您的标记,然后将它们作为数组进行迭代。这样的事情(我不知道它是否适用于Laravel,但你可以得到一个想法):

@foreach ($places as $place)
   @foreach ($place->rates as $rate)
      @foreach (json_decode($rate->marks) as $mark)
        {{var_dump($mark->mark)}}
      @endforeach
   @endforeach
@endforeach

答案 2 :(得分:0)

<?php
$str = '[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]';

$places = json_decode($str);

foreach ($places as $place) {
    echo 'id=>' . $place->id;
    echo 'mark=>' . $place->mark;
    echo "<br>";
}