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 递增。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值