我最近开始将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来降级.建议...
我一直在研究Slim 2,刚刚开始部署到生产服务器.到目前为止,一切似乎都运转良好.我能够登录,所以我知道我正在连接到数据库就好了.它识别出我已登录的用户,因为我已经识别出该用户的权限.我有另一个表有几个条目.当我做...
$collection = collect($app->item->where('user_id', $userId)->get());
Run Code Online (Sandbox Code Playgroud)
然后...
print_r($collection);
Run Code Online (Sandbox Code Playgroud)
在生产服务器上,我看到整个集合就像我在开发服务器上那样,但是当我添加...
$pack = $collection->where('status', 1);
Run Code Online (Sandbox Code Playgroud)
而不是打印集合,尝试打印包像......
print_r($pack);
Run Code Online (Sandbox Code Playgroud)
这条消息回来了......
Illuminate\Support\Collection Object ( [items:protected] => Array ( ) )
Run Code Online (Sandbox Code Playgroud)
在开发版本的哪个地方,我得到了过滤集合,正如我所期望的那样.如何更改代码以在开发和生产环境中工作?