$arr = ['up', 'down'];
という 2 つの値を持つ配列があります。誰かが賛成票を投じた場合 ($vote = 'up';
)、データベース内の up フィールドは 1 ずつ増加し、down フィールドは 1 ずつ減少する必要があります。
if else 条件を使用できます:
if ($vote === 'up') { $voteModel['up'] = $voteModel['up'] 1; $voteModel['down'] = $voteModel['down'] - 1; } それ以外 { $voteModel['up'] = $voteModel['up'] - 1; $voteModel['down'] = $voteModel['down'] 1; }
でも、この時間を短縮できないかなぁ。 arr = ['up' => 'down'];
について考えていましたが、残念ながら今はどこにも到達できません。何かアイデアはありますか?ありがとう!
あなたはもっと短くするよう要求しましたが、場合によっては、より明確な方が良いと思うことがあります。他の回答のほとんどには追加の配列またはトリプルが含まれており、それらは完全に問題なく、100%有効ですが、コードの意図がそれほど明白ではないと思います。私の場合は、
if
をそのまま使用し、増減にはと
--
を使用します。 「ビジネス ルール」は非常に明白で、コードもきれいに読めると思います。繰り返しますが、あなたが要求したものとまったく同じではありません。私の 2 セントだけです。
リーリー解決策 1:
リーリー解決策 2:
リーリー解決策 3 (
リーリー$voteModel
の「up」がインデックス 1 で、「down」がインデックス 0 の場合):解決策 3b (関連するキーを保持したい場合):
リーリー