PHP kodu aşağıda ki gibi yaptım. Sistem çalışıyor ama tam olarak istediğim gibi değil. Örneğin seçenek 1'i ve 3'yi seçtiğimde ilk seçeneği toplama dahil etmesini istemiyorum 2. ve 3. seçenekleri toplasın. Kısacası seçtiğim iki seçeneğin arasındaki sayıları toplasın ama bu toplama ilk seçeneği eklemesin. Bunu nasıl yapabilirim?
$secenekler = array(
"1" => 10,
"2" => 20,
"3" => 30,
"4" => 40,
"5" => 50,
);
$toplam_fiyat = 0;
if (isset($_POST['secim1']) && isset($_POST['secim2'])) {
$secim1 = $_POST['secim1'];
$secim2 = $_POST['secim2'];
$baslangic_indexi = array_search($secim1, array_keys($secenekler));
$bitis_indexi = array_search($secim2, array_keys($secenekler));
if ($baslangic_indexi > $bitis_indexi) {
$temp = $baslangic_indexi;
$baslangic_indexi = $bitis_indexi;
$bitis_indexi = $temp;
}
$secenekler_arasi_fiyat = 0;
for ($i = $baslangic_indexi; $i <= $bitis_indexi; $i++) {
$secenekler_arasi_fiyat += $secenekler[array_keys($secenekler)[$i]];
}
$toplam_fiyat = $secenekler_arasi_fiyat;
}
echo "Toplam fiyat: ₺" . $toplam_fiyat;<form method="post">
<label for="secim1">Seçim 1:</label>
<select name="secim1" id="secim1">
<option value="">-- Secenek Secin --</option>
<option name="Secenek 1" value="1">Secenek 1</option>
<option name="Secenek 2" value="2">Secenek 2</option>
<option name="Secenek 3" value="3">Secenek 3</option>
<option name="Secenek 4" value="4">Secenek 4</option>
<option name="Secenek 5" value="5">Secenek 5</option>
</select>
<br>
<label for="secim2">Seçim 2:</label>
<select name="secim2" id="secim2">
<option value="">-- Secenek Secin --</option>
<option name="Secenek 1" value="1">Secenek 1</option>
<option name="Secenek 2" value="2">Secenek 2</option>
<option name="Secenek 3" value="3">Secenek 3</option>
<option name="Secenek 4" value="4">Secenek 4</option>
<option name="Secenek 5" value="5">Secenek 5</option>
</select>
<br>
<input type="submit" value="Toplam Fiyat Hesapla">
</form>