$newSaleIds = collect(array_map('intval', $pida))->merge($newSaleIds)->unique()->values()->toArray();
时间: 2024-04-28 07:21:00 浏览: 80
这行代码的作用是将 `$pida` 数组中的产品 ID 转换为整数类型,并将其与 `$newSaleIds` 数组合并。然后去重并排序,最后将结果存储到 `$newSaleIds` 变量中。`collect()` 函数用于将传入的数组转换成集合(Collection),`array_map()` 函数用于将 `$pida` 数组中的每个元素都应用 `intval()` 函数进行转换,`merge()` 函数用于将两个数组合并,`unique()` 函数用于去重,`values()` 函数用于返回集合中的所有值,`toArray()` 函数用于将集合转换为数组。
相关问题
$idSortData = ProductService::getIdSortProducts(); $adproducts = $idSortData['adproducts']; $pida = $idSortData['pida']; $section = $this['sortableDetailSection'](); $pida = array_unique(array_merge($pida, $section['pids'] ?? [])); $adproducts = array_values(array_column($adproducts, null, 'id') + array_column($section['items'] ?? [], null, 'id')); //sku置顶 if(!empty($pida)){ $primaryProduct = current($adproducts) ?: []; if(!empty($primaryProduct) && !empty(get('skuid')) && !empty(Products::getSkuOption($primaryProduct, get('skuid'))) ){ $this['primaryProduct'] = $primaryProduct; unset($adproducts[0]); unset($pida[0]); } } //勾选位置顶(批量产品置顶) $sortSectionCode = get('sort_code', ''); if(!empty($sortSectionCode)){ $sortSectionCodeArr = $sortSectionCode; if(is_string($sortSectionCode)){ $sortSectionCodeArr = explode(',', $sortSectionCode)??[]; } $sortSectionPids = []; foreach($sortSectionCodeArr as $code){ $sortSectionPids = array_merge($sortSectionPids, $this['catalog']->getSectionPids($code)); } $pida = array_values(array_unique(array_merge($pida, $sortSectionPids))); } $this['pida'] = $pida; $newSaleSection = $this['catalog']->ProductSection('best-sale'); $newSaleIds = $newSaleSection['section']['pids']??[]; $newSaleIds = collect(array_map('intval', $pida))->merge($newSaleIds)->unique()->values()->toArray(); $this['productsId'] = $newSaleIds; $products = App::make('Jason\Ccshop\Controllers\Products')->onLoadMoreProductsToEs($newSaleIds); $this['products'] = $products; $this['sortUrl'] = trim(str_replace('.html', '', $this->page->url),'/');
这段代码看起来像是一个控制器方法,它的作用是获取产品数据并进行排序。代码中涉及到一些变量,例如 `$adproducts` 代表广告产品,`$pida` 则是产品 ID 数组。在代码中首先将 `$section['pids']` 合并到 `$pida` 数组中,然后将 `$adproducts` 数组和 `$section['items']` 数组合并,再根据产品 ID 进行去重和排序。之后,如果 URL 参数中有 `skuid` 参数,将该参数所对应的产品置顶。接着,如果 URL 参数中有 `sort_code` 参数,将该参数所对应的产品批量置顶。最后,将产品 ID 数组用于从 Elasticsearch 中加载产品数据,并将数据存储到 `$products` 变量中,同时将排序后的 URL 存储到 `$sortUrl` 变量中。
阅读全文