2 回答

TA貢獻1906條經(jīng)驗 獲得超3個贊
public function getMinPrice() {
return array_reduce($this->getProduktLinks()->toArray(), function($lowest, $link) {
if($link->getPrice() != 0 && $lowest != 0){
return min($lowest ?? $link->getPrice(), $link->getPrice());
}
});
}

TA貢獻1818條經(jīng)驗 獲得超3個贊
你可以在一行上做,但你冒著不可讀的風險,所以我建議如下:
public function getMinPrice() {
return array_reduce($this->getProduktLinks()->toArray(), function($lowest, $link) {
$min = min($lowest ?? $link->getPrice(), $link->getPrice());
return $min ?: max($lowest ?? $link->getPrice(), $link->getPrice());
});
}
邏輯很簡單,如果最低為假(即0),則返回另一個。但是,如果兩者都為 0,則可以根據(jù)需要添加一些其他邏輯。它看起來像這樣:
public function getMinPrice() {
return array_reduce($this->getProduktLinks()->toArray(), function($lowest, $link) {
$min = min($lowest ?? $link->getPrice(), $link->getPrice());
return ($min ?: max($lowest ?? $link->getPrice(), $link->getPrice())) ?: "some other value";
});
}
- 2 回答
- 0 關注
- 163 瀏覽
添加回答
舉報