有人能帮我改写一下这个吗?
public function allOutOfStockShows()
{
$out_of_stock_shows = 999;
foreach ($this->variants as $variant){
if (!$variant->out_of_stock_shows) { continue; }
if ($variant->out_of_stock_shows < $out_of_stock_shows) { $out_of_stock_shows = $variant->out_of_stock_shows; }
};
if ($out_of_stock_shows == 999) { return 'Out Of Stock'; }
return config('site.out_of_stock_shows')[$out_of_stock_shows]; // eg '2-3 days','3-5 days'
}(整数)$variant> out _stock_shows的值可以从0到12不等,所以我开始使用“最高”数字作为我从air - 999中提取出来的一个数字,然后我选择一个较低的值,正如您所看到的。它能工作,但感觉不对,我该如何接近它呢?
发布于 2016-06-20 17:18:52
也许你可以转换成数组,使用分钟()函数;
$out_of_stock_shows = array_map(
function( $item ) {
return $item->out_of_stock_shows;
}, $this->variants );
$out_of_stock_shows = min( array_filter( $out_of_stock_shows ) );发布于 2016-06-20 17:30:57
谢谢各位--使用laravel的集合,我删除了所有"0“元素,对数组进行了排序,并查看了数组顶部的内容:
public function allOutOfStockShows()
{
$variants = $this->variants->reject(function ($variant){
return $variant->out_of_stock_shows === 0;
})->sortBy('out_of_stock_shows');
if (isset($variants->first()->out_of_stock_shows)) {
return config('site.out_of_stock_shows')[$variants->first()->out_of_stock_shows];
}
return "Out Of Stock";
}https://stackoverflow.com/questions/37928172
复制相似问题