PHP二位数组从0开始并以1递增实现方式

//精品推荐
$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 递增。

本文链接:https://my.lmcjl.com/post/11915.html

展开阅读全文

4 评论

留下您的评论.