//精品推荐
$is_best = array();
//$goods是从数据表查询出的符合条件的数据
foreach ($goods as $key => $value) {
//如果is_best为1,说明才是满足属于精品分类下面的
if($value['is_best'] == 1){
$is_best[$key]['title'] = $value['title']; //标题
$is_best[$key]['image'] = $value['image']; //图像
$is_best[$key]['team_price'] = $value['team_price']; //商品本店价格
$is_best[$key]['market_price'] = $value['market_price']; //商品市场价格
}
}
//转换为json格式
echo json_encode( array(
//精品推荐
'is_best' => $is_best,
));
今天在实现循环遍历,并转化为APP接口json格式,返回的信息是:
{
"is_best": [
'20':{
"title": "韩露竹盐焗油护理洗发乳洗发露去油污头屑强韧发根护发日化用品",
"image": "goods\/20180730\/14830707323121.jpg",
"team_price": "18.00",
"market_price": "35.00"
},
'21':{
"title": "融氏\/Rongs 玉米油5L 食用油 粮油批发 烹饪 非转基因 绿色认证",
"image": "goods\/20180730\/14830788825986.jpg",
"team_price": "80.00",
"market_price": "100.00"
}
]
}
这种格式在前端接收时,“is_best”下面的输出,由于是不是从0开始,需要做出调整:
首先想到的是,再做一次循环(二次循环):
//定义一个变量每次循环都是从0开始
$i = 0;
foreach($value as $value1){
$is_best[$key][$i]['title'] = $value1['title'];
$is_best[$key][$i]['image'] = $value1['image'];
$is_best[$key][$i]['team_price'] = $value1['team_price'];
$is_best[$key][$i]['market_price'] = $value1['market_price'];
//执行完之后,数组下标加1
$i++;
}
还有一个是最简单的方法:array_values() 函数。array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。被返回的数组将使用数值键,从 0 开始并以 1 递增。
在转化格式的输出中:
echo json_encode( array(
//精品推荐
//输出前加上array_values()
'is_best'=>array_values($is_best),
));
输出结果:
{
"is_best": [
{
"title": "韩露竹盐焗油护理洗发乳洗发露去油污头屑强韧发根护发日化用品",
"image": "goods\/20180730\/14830707323121.jpg",
"team_price": "18.00",
"market_price": "35.00"
},
{
"title": "融氏\/Rongs 玉米油5L 食用油 粮油批发 烹饪 非转基因 绿色认证",
"image": "goods\/20180730\/14830788825986.jpg",
"team_price": "80.00",
"market_price": "100.00"
}
]
}
转换之后,在APP接口输出默认就是从0开始,并以 1 递增。