Ich habe ein Array mit zwei Werten $arr = ['up', 'down'];
. Wenn jemand positiv stimmt ($vote = 'up';
), sollte das Up-Feld in der Datenbank um 1 erhöht und das Down-Feld um 1 dekrementiert werden.
Ich kann die if else-Bedingung verwenden:
if ($vote === 'up') { $voteModel['up'] = $voteModel['up'] + 1; $voteModel['down'] = $voteModel['down'] - 1; } anders { $voteModel['up'] = $voteModel['up'] - 1; $voteModel['down'] = $voteModel['down'] + 1; }
Aber ich frage mich, ob diese Zeit verkürzt werden kann. Ich habe über arr = ['up' => 'down'];
nachgedacht, aber leider komme ich gerade nicht weiter. Hast Du eine Idee? Danke!
虽然您要求更短,但有时我认为更清晰更好。大多数其他答案都包括额外的数组或三元组,它们完全没问题并且 100% 有效,但我认为代码的意图并不那么明显。对我来说,我会保留
if
并仅使用++
和--
进行递增和递减。我认为“业务规则”非常明显,代码读起来也很干净。再一次,不完全是你所要求的,只是我的两分钱。
解决方案1:
解决方案2:
解决方案 3(如果
$voteModel
中“up”为索引 1,“down”为索引 0):解决方案 3b(如果我们想保留关联键):