# 第一优先级取出的数据不足36的时候 $num0 < 12 true if ($num0 < $needNum) { # 获取第一优先级的数据的docId $res1_0_1 = array(); # 储存第一优先级的文章id,用于排重 foreach ($res1_0 as $key => $value) { $unArr[] = $key; $res1_0_1[] = $key; } # 得到一个文章关联的产品id $proIdArr = get_product_id($docArr); #var_dump($proIdArr);exit('128_1'); # 没有proId则使用“看了又看” $proId if ($proIdArr) { # 返回形如array(0=>5255718,1=>5255719...) $docArr1_1 = get_docid_by_proid($proIdArr, $needNum - $num0, $unArr); //var_dump($docArr1_1);exit(); # 通过proId获得了文章id if (is_array($docArr1_1)) { # 第一优先级和第二优先级的规则的数据合并 $docArr1_1 = array_merge($res1_0_1, $docArr1_1); } else { $docArr1_1 = $res1_0_1; } //var_dump($docArr1_1);exit('144_1'); // array(0=>5255718,...) # 用于排重 foreach ($docArr1_1 as $key => $value) { if (array_search($unArr, $value)) { $unArr[] = $value; } }
# 第一优先级取出的数据不足36的时候 $num0 < 36 true ##### 36是 $dataNum 的一个实例,下面的程序都是 ######## if ($num0 < $dataNum) { # 获取第一优先级的数据的docId $res1_0_1 = array(); # 储存第一优先级的文章id,用于排重 foreach ($res1_0 as $key => $value) { $unArr[] = $key; $res1_0_1[] = $key; } # 得到一个文章关联的产品id $proId = get_product_id($docArr); //var_dump($proId);exit('103_1'); # 没有proId则使用“看了又看” $proId if ($proId) { # 返回形如array(0=>5255718,1=>5255719...) $docArr1_1 = get_docid_by_proid($proId, $dataNum - $num0, $unArr); # 如果产品id获取不到相关的文章,则使用第三优先级规则 if (!$docArr1_1) { $docArr1_1 = get_docid_by_lookmore($docArr, $dataNum - $num0, $unArr); $docArr1_1 = array_keys($docArr1_1); # 经过proId却没有数据 $proNoIdFlag = true; } # 第一优先级和第二优先级的规则的数据合并 $docArr1_1 = array_merge($res1_0_1, $docArr1_1); if (is_array($docArr1_1)) { $docNum = count($docArr1_1); $docArr1_1_1 = array(); # 用于排重 foreach ($docArr1_1 as $key => $value) { $docArr1_1_1[$value] = 9;