如何优化此foreach php?

时间:2019-06-17 06:56:54

标签: php foreach

如何优化此foreach。我问是因为我自己不能介意这种逻辑,而且可能有太多的搜索属性,例如“ vendor”或“ prod_type_id”,也许我需要以这种方式过滤搜索结果的

 foreach ($pre_products['products'] as $key => $product){
     if (null != $pre_products['vendor'] && null != $pre_products['prod_type_id']){
         if ($product->vendor_id == $pre_products['vendor'] && $product->prod_type_id == $pre_products['prod_type_id'] ){
             $products[$i] = $product;
         }
     } elseif (null != $pre_products['vendor']) {
         if ($product->vendor_id == $pre_products['vendor']) {
             $products[$i] = $product;
         }
     } elseif (null != $pre_products['prod_type_id']) {
         if ($product->prod_type_id == $pre_products['prod_type_id']) {
            $products[$i] = $product;
         }
     } else {
         $products[$i] = $product;
     }
     $i++;
}

请说明我们在此可以运用哪些逻辑来优化此foreach

我试图在哪里接受集合,但是我不知道为什么我收到空数组

$products=$pre_products['products']->where('vendor_id',$pre_products['vendor'])
        ->where('prod_type_id',$pre_products['prod_type_id']);
        $products=$products->all();

0 个答案:

没有答案