ホームページ  >  に質問  >  本文

PHP配列内の2つの文字列を切り替える

<p><code>$arr = ['up', 'down'];</code> という 2 つの値を持つ配列があります。誰かが賛成票を投じた場合 (<code>$vote = 'up';</code>)、データベース内の up フィールドは 1 ずつ増加し、down フィールドは 1 ずつ減少する必要があります。 </p> <p>if else 条件を使用できます: </p> <pre class="brush:php;toolbar:false;">if ($vote === 'up') { $voteModel['up'] = $voteModel['up'] 1; $voteModel['down'] = $voteModel['down'] - 1; } それ以外 { $voteModel['up'] = $voteModel['up'] - 1; $voteModel['down'] = $voteModel['down'] 1; } </pre> <p>でも、この時間を短縮できないかなぁ。 <code>arr = ['up' => 'down'];</code> について考えていましたが、残念ながら今はどこにも到達できません。何かアイデアはありますか?ありがとう! </p>
P粉710478990P粉710478990382日前522

全員に返信(2)返信します

  • P粉029327711

    P粉0293277112023-09-05 12:26:32

    あなたはもっと短くするよう要求しましたが、場合によっては、より明確な方が良いと思うことがあります。他の回答のほとんどには追加の配列またはトリプルが含まれており、それらは完全に問題なく、100%有効ですが、コードの意図がそれほど明白ではないと思います。私の場合は、if をそのまま使用し、増減には -- を使用します。 「ビジネス ルール」は非常に明白で、コードもきれいに読めると思います。

    繰り返しますが、あなたが要求したものとまったく同じではありません。私の 2 セントだけです。

    リーリー

    返事
    0
  • P粉166779363

    P粉1667793632023-09-05 00:11:58

    解決策 1:

    リーリー

    解決策 2:

    リーリー

    解決策 3 ($voteModel の「up」がインデックス 1 で、「down」がインデックス 0 の場合):

    リーリー

    解決策 3b (関連するキーを保持したい場合):

    リーリー

    返事
    0
  • キャンセル返事