Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

PHP unset fonksiyonu tam çalışmıyor.

Dizideki tek sayıları silmek istiyorum ama ilginçtirki 8 index'ine sahip sayıyı silmiyor.

ama unset( $array[8] ); yapınca siliyor.


Kodlar:

$a = [1,2,3,4,5,6,7,8,9,10];
function delete($array){
    for( $i = 0; $i < count($array); $i++ ){
        if( $array[$i] % 2 != 0 ){
            unset( $array[ array_search($array[$i],$array) ] );
        }
    }
}

delete($a);  


Çıktı:

Array
(
[1] => 2
[3] => 4
[5] => 6
[7] => 8
[8] => 9
[9] => 10
)
php
1

Cevaplar (1)

İşlem devam ediyor, lütfen bekleyin..
Tayfun Erbilen
Doğru Cevap
@tayfunerbilen
2 ay önce

index değerleri 0'dan başlar, eğer değere göre yapmak istersen şu fonksiyonu kullanabilirsin;


$arr = [1,2,3,4,5,6,7,8,9,10];
function delete($array){
    foreach ($array as $key => $val){
        if ($val % 2 !== 0)
            unset($array[$key]);
    }
    return array_values($array);
}

print_r(delete($arr));


Yok ben index'e göre yapacağım dersen, o zaman şunu dene;


$arr = [1,2,3,4,5,6,7,8,9,10];
function delete($array){
    foreach ($array as $key => $val){
        if (($key + 1) % 2 !== 0)
            unset($array[$key]);
    }
    return array_values($array);
}

print_r(delete($arr));


Cevapla @root2 ay önce
@tayfunerbilen, Oldu ama benim yaptığımda da index'e göre sildiriyordum. Onda neden olmadı?
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın

Yabancı Dizi Arşivi