使用ng-repeat循环遍历格式化为字符串的数组

use*_*671 8 php arrays json angularjs

我最近开始将Angular添加到我制作的旧应用程序中.部分应用程序将json编码的数组存储在mySql表的单个单元格中.我知道这是不赞成的,但我百分百肯定它以后不会再回来咬我了.在过去,我刚刚能够在数组上执行json_decode并在有序列表中输出值.由于我已经包含了Angular,因此数据被编码并在php文件的末尾进行回显.然后它被Angular代码拾取,我能够遍历这个深度嵌套的多维对象,直到它到达这个部分......

"sub_items":"[\"subOne\",\"subTwo\",\"subThree\"]"
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是输出包含所有反斜杠,括号和引号的字符串,因为它是一个字符串.

我已经尝试在sub_items的每个实例上执行json_decode,但它不起作用.我认为那是因为整个事情再次被编码.

我怎么能循环遍历这个数组?

编辑

根据@Yaser Adel Mehraban的答案中的评论,我在以下方面取得了一些进展.

foreach($master as $index => $item) {
    if($category == $item['category']) {
        $sub = [];
        $sub['sub_items'] = json_decode($item['sub_items']);
        unset($item['sub_items']);
        array_push($items, $item, $sub);
    }
}
Run Code Online (Sandbox Code Playgroud)

这回来了

...created_at":"2016-11-01 14:19:07"},{"sub_items":["subOne","subTwo","subThree"...
Run Code Online (Sandbox Code Playgroud)

现在我认为我遇到麻烦的数组的格式是正确的,但它位于项目之外.我也尝试过array_merge,但它添加了一个新的密钥,这会强制我不必要的ng-repeat来降级.建议...

use*_*671 0

终于通过以下更改进行了排序...

foreach($master as $index => $item) {
    foreach($item as $key => $value) {
        if($key == 'sub_items') {
            $sub = json_decode($value);
            unset($item['sub_items']);
            $item['sub_items'] = $sub;
        }
    }
    if($category == $item['category']) {
        array_push($items, $item);                  
    }
}
Run Code Online (Sandbox Code Playgroud)

这回...

...created_at":"2016-11-01 14:19:07","sub_items":["subOne","subTwo","subThree"...
Run Code Online (Sandbox Code Playgroud)

不再被视为字符串,可以轻松使用 Angular 进行循环。谢谢!