Php de dizilerde herhangi bir değişkeni silmek için unset() kullanırız. Dizilerde de bir elemanı silmek istersen örneğin $users[5] adında bir dizide 6. elemanı yani 5 indisli dizi elemanını silmek istersek unset() kullanırız.
Php Diziden Eleman Silme
$users= array("john","jack","steven","charlie"); unset($users[0]); var_dump($users);
Yukarıdaki kod çalıştığında çıktı olarak bize çıktısı şu olacaktır.
Böylelikle ilk değeri silmiş olduk.
Diziyi komple silmek isterseniz yine unset($users) yapabilirsiniz.
Kullanıma gelecek olursak konuyu daha mantıklı kavramanızı sağlayacak bir örnek verebilirim.
Elinizde 2 adet dizi ya da txt dosyası olduğunu düşünelim. Birinci dizi toplam tüm değerleriniz liste halinde, ikincisi ise kullandıklarınızı atadığınız dizi ya da txt. Şimdi rastgele ilk diziden bir değer çekersiniz ve eğer kullanılan içerisinde mevcut ise unset yaparsınız. Takriben kod şöyle olacaktır ;
foreach ( $users as $user ) { if(strstr($user,"har")) { array_push($olmayanlar,$user); }else { unset($user); } }
Basit ve test etmediğim bu örnekte eğer user içerisinde “har” ifadesi varsa bunu tutmak için bir diziye atarken else kısmında ise bugünkü örnekte kullandığımız unset ile değişkeni yok ediyoruz. Umarım daha acıklayıcı olmuştur.
Bugünkü unset kullanımı dersinde dizilerden değer silmeyi gördük ancak değer silindiğinde indis değerleri yok olmakta. Sıfırıncı değer gördüğünüz üzere kaybolmuştu. Bunu düzeltmek için ise php de array_values() kullanabiliriz. Böylece indisler yeniden oluşacaktır. Ekran çıktısına tekrar bakalım.
Array ( [0] => jack [1] => steven [2] => charlie )
Kod çıktısı artık böyle olacaktır. Aslında basit bir konu ancak diziler php de aslında nasıl ki bir programlama dilinde if else olmadan “hiçbir şey yapılamaz” denecek kadar kısıtlı hale geliyor, diziler de o kadar değerlidir. Her fonksiyonu ezberlemek imkansız olsa da kod yazarken hız kazanmak için böyle pratikler şart. Herkese iyi ve sağlıklı çalışmalar 🙂