我有一个包含两个值的数组 $arr = ['up', 'down'];。如果有人投了赞成票($vote = 'up';),则数据库中的 up 字段应增加 1,down 字段应减少 1。
我可以使用 if else 条件:
if ($vote === 'up') {
$voteModel['up'] = $voteModel['up'] + 1;
$voteModel['down'] = $voteModel['down'] - 1;
} else {
$voteModel['up'] = $voteModel['up'] - 1;
$voteModel['down'] = $voteModel['down'] + 1;
}
但我想知道是否可以缩短这个时间。我正在考虑 arr = ['up' => 'down']; 但不幸的是我现在没有任何进展。你有什么想法?谢谢!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
虽然您要求更短,但有时我认为更清晰更好。大多数其他答案都包括额外的数组或三元组,它们完全没问题并且 100% 有效,但我认为代码的意图并不那么明显。对我来说,我会保留
if并仅使用++和--进行递增和递减。我认为“业务规则”非常明显,代码读起来也很干净。再一次,不完全是你所要求的,只是我的两分钱。
if ('up' === $vote) { $voteModel['up']++; $voteModel['down']--; } else { $voteModel['up']--; $voteModel['down']++; }解决方案1:
解决方案2:
解决方案 3(如果
$voteModel中“up”为索引 1,“down”为索引 0):解决方案 3b(如果我们想保留关联键):