update($update); } } /** * 更新需求属性信息 * * @return mixed */ public function attrUpdate($id, $name, $data) { print_r($data);die; foreach ($data as $k => $v) { } } /** * 显示信息 * * @return mixed */ public function info($id) { $info = Dever::db('goods/info')->one($id); if ($info) { $table['编号'] = $info['id']; $table['标题'] = $info['name']; $table['分类'] = Dever::load("category/api.string", $info['category']); if ($info['pic_cover']) { $table['封面图'] = ''; } if ($info['shop_id'] > 0) { $shop = Dever::load('goods/shop-one', $info['shop_id']); $table['所属店铺'] = $shop['name']; } if ($info['brand_id'] > 0) { $brand = Dever::load('goods/brand-one', $info['brand_id']); $table['所属品牌'] = $brand['name']; } //$table['属性'] = $this->attrInfo($info); if ($info['cdate']) { $table['发布时间'] = date("Y-m-d H:i:s", $info['cdate']); } } return Dever::table($table); } private function attrInfo($info) { $table = array(); $info = Info::init($info['top_category_id']); if ($info) { $info = $info->info($info, 'id'); if ($info && isset($info['attr'])) { foreach ($info['attr'] as $k => $v) { $table[$v['name']] = $v['value_string']; } } } return Dever::table($table); } public function area($id, $name, $data) { # 不再执行syncone等后续操作 Dever::config('base')->after = 1; $type = Dever::input('type'); $area = Dever::param('area', $data); if ($area) { if (isset($area[2])) { $update['district_id'] = $area[2]; } if (isset($area[1])) { $update['city_id'] = $area[1]; } if (isset($area[0])) { $update['province_id'] = $area[0]; } if (isset($update)) { $update['where_id'] = $id; Dever::db($type . '/info')->update($update); } } } public function skuInput() { $id = Dever::input('search_option_info_id'); $info = Dever::db('goods/info')->one($id); $info = Info::init(-1)->info($info, 'list_reorder'); if ($info['attr']) { $head = ''; $body = ''; foreach ($info['attr'] as $k => $v) { $head .= ''.$v['name'].''; } $head .= '原价'; $head .= '现价'; $head .= '库存'; $head .= ''; } $data = array( array('白色','银色','玫瑰金'), array('64G','128G'), array('移动','电信','联通'), array('国行','港版') ); //打印结果 $result = $this->Cartesian($info['attr']); print_r($result);die; // print_r($option);die; $html = $head . $body; return $html; } function Cartesian($data){ $len = count($data); // 取第一个集合数组值 $result = $data[0]['option']; for ($i = 0; $i< $len-1; $i++) { $arr1 = $result; $result = []; // 数组第一个值和第二个值组合 foreach ($arr1 as $res) { //数组第二个值...$i+1 foreach($data[$i+1] as $k => $v){ if(!is_array($res)) { $res = array($res); } if(!is_array($v)){ $sec = array($v['option']); } $result[] = array_merge_recursive($res,$sec); } } } return $result; } }