0 oy
Php kategorisinde (120 puan) tarafından soruldu
Aşağıdaki kodda yapmak istediğim şey şu: Fonksiyon, kafamdakidizi13 dizisinde eğer 13 toplamına rastlarsa o toplamın kaynağını bir daha işleme sokmasın.

Aşağıda beş basamaklı bir sayının farklı basamaklarının birbirleriyle farklı toplam ihtimalleri sıralı. (Mesela $toplam12 değişkeni birinci ve ikinci basamağın toplamı anlamına geliyor.)

------------------------------------

1- Ben istiyorum ki 13 sayısını bulduysam bu ihtimallerden birinde, bunun çıktısını yazdırayım.

2- Ancak bu çıktıyı veren basamakları bir daha çıktı vermemesi için denklemden sileyim.

3- Ve bununla beraber bu basamakları içeren değişkenleri de sileyim ki boş kalan değerlerle yanlış toplam vermesinler.

------------------------------------

Birinci cümleye örnek: Aşağıda $toplam12=13 veriyor bunu ekrana yazdırayım.

İkinci cümleye örnek: Ancak $toplam14 de 13 veriyor. Ancak ben zaten birinci basamağı kullanarak bir sayı elde ettim. O yüzden $toplam12 bana 13'ü buldurduysa bunu bulduran birinci ve ikinci basamağı sildireyim ki aynı basamak $toplam14'de de işleme girip tekrar 13 yazdırmasın.

Üçüncü cümleye örnek: $toplam12'den 13'ü ekrana yazdırdık. İşleme giren basamakları denklemden sildik. Ancak sildiğimiz basamaklar başka değişkenlerde de tanımlı. Örneğin $toplam23= 9 verirken, ben ikinci basamağı sildirdiğim için artık 1 sonucunu verecek. Ve bu da tabi değer yanlış olacak.

Bunu önlemek için de bulduğumuz 13 ten sonra sildiğimiz kaynak basamaklarla beraber bu basamakları kullanan değişkenleri de sildirelim.

------------------------------------

Kim yapabilirse gerçekten eline sağlık helal olsun... Çok teşekkürler...

<?php

$birincibasamak= '5';
$ikincibasamak= '8';
$ucuncubasamak= '1';
$dorduncubasamak= '8';
$besincibasamak= '5';

$ktblst= array($birincibasamak, $ikincibasamak, $ucuncubasamak, $dorduncubasamak, $besincibasamak);

$toplam12= $ktblst[0] + $ktblst[1] ; ## 13
$toplam23= $ktblst[1] + $ktblst[2]; ## 9
$toplam34= $ktblst[2] + $ktblst[3]; ## 9
$toplam14= $ktblst[0] + $ktblst[3]; ## 13
$toplam145= $ktblst[0] + $ktblst[3] + $ktblst[4]; ## 18
$toplam12345= $ktblst[0] + $ktblst[1] + $ktblst[2]+ $ktblst[3] + $ktblst[4]; ## 27


$kafamdakidizi13 = [$toplam12, $toplam23, $toplam34, $toplam14, $toplam145, $toplam12345];


function delete($array){
    foreach ($array as $key => $val){
        if ($val[] == 13)###burada koptum ne yazsam işleme sokmuyor...
            unset($array[$key]);
    }
    return array_values($array);
}


print_r(delete($kafamdakidizi13));

?>

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

Yazılım Biliminin Soru Cevap Platformuna hepiniz hoşgeldiniz. Bu platformda kurallara uyarak diğer geliştiricilerle yardımlaşabilirsiniz.
...