是否可以重构多个相似的PHP三元组?

问题描述 投票:0回答:1

我有一些代码,感觉好像有很多重复。我将其归结为以下内容,但是我仍然看到一些重复的事情,感觉应该有一种更简洁的编写方法。还有什么可以做的吗?

$w1 = ($fin[57] > $fin[60]) ? $tc[57] : $tc[60];
$l1 = ($fin[57] > $fin[60]) ? $tc[60] : $tc[57];
$w2 = ($fin[58] > $fin[59]) ? $tc[58] : $tc[59];
$l2 = ($fin[58] > $fin[59]) ? $tc[59] : $tc[58];

我真正想要的是,如果有一种方法可以使三元数返回真值和假值的数组。像这样的虚拟代码:

list($w1, $l1) = (array) ($fin[57] > $fin[60]) ? $tc[57] : $tc[60];
list($w2, $l2) = (array) ($fin[58] > $fin[59]) ? $tc[58] : $tc[59];
php
1个回答
1
投票

您可以使用list使它更好一点:

$order = function ($i1, $i2) use ($fin, $tc) {
    $r = [$tc[$i1], $tc[$i2]];
    if ($fin[$i2] > $fin[$i1]) $r = array_reverse($r);
    return $r;
};
list($w1, $l1) = $order(57, 60);
list($w2, $l2) = $order(58, 59);
© www.soinside.com 2019 - 2024. All rights reserved.