php - PHP循环遍历数据库中的JSON数组
问题描述
我将这个 JSON 数组存储在我的数据库中
[{
"prodid": 1,
"optionsids": [],
"extrasids": ["1"]
}, {
"prodid": 2,
"optionsids": [],
"extrasids": ["4"]
}]
我将它存储为一个数组,当我在 PHP 中检索它时,我正在经历这个,我 100% 确定它是错误的
$productsarray=json_encode($row['productids']);
$obj = json_decode($productsarray, TRUE);
所以我可以循环获取prodid
值
$products='';
foreach( $obj as $key => $value) {
$value = get_object_vars($value);
$products = $products.$value;
}
但我收到一个Invalid argument supplied for foreach()
错误,这意味着这$obj
不是一个数组,对吗?idk 如何解决这个问题我尝试了各种方法但没有结果。
解决方案
如果这是string
存储在您的数据库列中:
[{
"prodid": 1,
"optionsids": [],
"extrasids": ["1"]
}, {
"prodid": 2,
"optionsids": [],
"extrasids": ["4"]
}]
如果它已经存储为 json,json_encode
当你将它从数据库中拉出时,你不需要再次存储它。
以下是您需要做的所有事情才能将所有内容prodid
放入一个数组中以供使用:
$items = json_decode($row['productids'],true);
$products = [];
foreach($items as $item) {
$products[] = $item['prodid'];
}
var_dump($products);// for debug to see the result
$product_string = implode(',',$products);// to put all prodid in a single string
推荐阅读
- python-3.x - 安装 pytext-nlp 时出错:错误:没有为 torch==1.3.1 找到匹配的分布(来自 pytext-nlp)
- flutter - Flutter:停止或取消或中止 webview 中的页面加载
- wpf - 无法将 wpf 材料设计图标应用于按钮
- jquery - 错误的格式 freezelayout-right 与 SB 管理员
- jquery - 使用 Jquery 使整个 div/figure 可点击
- html - 如何根据屏幕大小调整经过验证的 PayPal 图像大小
- reactjs - 如何以数组格式存储图像url
- mysql - 如何根据 MySQL 中的多个列从多个表中获取唯一记录?
- php - 在 Ajax CodeIgniter 中出现错误 403 Forbidden
- android - 为 exoplayer 启用缓存