为了账号安全,请及时绑定邮箱和手机立即绑定

php二维数组根据price值相加,和大于20的拆分成新的数组

php二维数组根据price值相加,和大于20的拆分成新的数组

PHP
慕森王 2019-03-08 20:14:19
问题描述 php二维数组根据price值相加,和大于20的拆分成新的数组 相关代码 // 请把代码文本粘贴到下方(请勿用图片代替代码)Array( [0] => Array ( [inventory_type] => 1 [order_goods] => Array ( [0] => Array ( [id] => 162646434 [price] => 7.65 [goods_id] => 274774 ) [1] => Array ( [id] => 162646435 [price] => 12.46 [goods_id] => 445018 ) [2] => Array ( [id] => 162646436 [price] => 17.00 [goods_id] => 461913 ) [3] => Array ( [id] => 162646437 [price] => 10.68 [goods_id] => 408752 ) ) ) ) 你期待的结果是什么?实际看到的错误信息又是什么? Array( [0] => Array ( [inventory_type] => 1 [order_goods] => Array ( [0] => Array ( [id] => 162646434 [price] => 7.65 [goods_id] => 274774 ) [1] => Array ( [id] => 162646435 [price] => 12.46 [goods_id] => 445018 ) ) ) [1] => Array ( [inventory_type] => 1 [order_goods] => Array ( [0] => Array ( [id] => 162646436 [price] => 17.00 [goods_id] => 461913 ) ) ) [2] => Array ( [inventory_type] => 1 [order_goods] => Array ( [0] => Array ( [id] => 162646437 [price] => 10.68 [goods_id] => 408752 ) ) ) )
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

自己已经写出来了!谢谢大家支持!

public function getData($list,$inventory_type){

    $slice = array();
    $newList = array();
    while (!empty($list)) {
        $first = array_shift($list);
        array_push($slice, $first);
        if (array_sum(array_column($slice,'avg_price')) > 650) {
            $last = array_pop($slice);
            array_unshift($list, $last);
            $newList['inventory_type'] = $inventory_type;
            $newList['order_goods'][] = $slice;
            $slice = array();
        }
        if (empty($list) && !empty($slice)) {
            $newList['inventory_type'] = $inventory_type;
            $newList['order_goods'][] = $slice;
            $slice = array();
        }
    }
    return $newList;
}
查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 325 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信