如何优化此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();