Beralih antara dua rentetan dalam tatasusunan PHP
P粉710478990
2023-09-04 19:06:47
<p>Saya mempunyai tatasusunan dengan dua nilai <kod>$arr = ['atas', 'bawah'];</code>. Jika seseorang mengundi (<code>$vote = 'up';</code>), medan atas dalam pangkalan data hendaklah ditambah dengan 1 dan medan bawah hendaklah dikurangkan dengan 1. </p>
<p>Saya boleh menggunakan jika lain syarat:</p>
<pre class="brush:php;toolbar:false;">if ($undian === 'up') {
$voteModel['up'] = $voteModel['up'] + 1;
$voteModel['down'] = $voteModel['down'] - 1;
} lain {
$voteModel['up'] = $voteModel['up'] - 1;
$voteModel['down'] = $voteModel['down'] + 1;
}
</pra>
<p>Tetapi saya tertanya-tanya sama ada masa ini boleh dipendekkan. Saya sedang memikirkan tentang <code>arr = ['up' => 'down'];</code> Awak ada sebarang idea? Terima kasih! </p>
Walaupun anda meminta lebih pendek, kadangkala saya rasa lebih jelas adalah lebih baik. Kebanyakan jawapan lain termasuk tatasusunan tambahan atau tiga kali ganda, yang benar-benar baik dan 100% sah, tetapi saya tidak fikir niat kod itu begitu jelas. Bagi saya, saya akan menyimpan
if
并仅使用++
和--
untuk kenaikan dan pengurangan. Saya rasa "peraturan perniagaan" cukup jelas dan kod itu dibaca dengan bersih.Sekali lagi, bukan apa yang anda minta, hanya dua sen saya.
Penyelesaian 1:
Penyelesaian 2:
Penyelesaian 3 (jika "naik" dalam
$voteModel
ialah indeks 1 dan "bawah" ialah indeks 0):Penyelesaian 3b (jika kita mahu menyimpan kunci yang berkaitan):