Bir öğeyi diziden silme yolunu söyler misiniz? Sence bu iyi mi?PHP'de dizi öğesini silmenin en iyi yolu nedir?
cevap
şeye bağlı:
$a1 = array('a' => 1, 'b' => 2, 'c' => 3);
unset($a1['b']);
// array('a' => 1, 'c' => 3)
$a2 = array(1, 2, 3);
unset($a2[1]);
// array(0 => 1, 2 => 3)
// note the missing index 1
// solution 1 for numeric arrays
$a3 = array(1, 2, 3);
array_splice($a3, 1, 1);
// array(0 => 1, 1 => 3)
// index is now continous
// solution 2 for numeric arrays
$a4 = array(1, 2, 3);
unset($a4[1]);
$a4 = array_values($a4);
// array(0 => 1, 1 => 3)
// index is now continous
Genellikle unset()
hashtables (telli-endeksli diziler) için güvenli olmakla birlikte, sürekli sayısal indeksler güvenmek varsa kullanmak gerekecek ya array_splice()
veya unset()
bir arada ve array_values()
.
yaygın yolu: manual
unset($arr[5]); // This removes the element from the array
filtrelenmiş şekillerine göre
:
filtreleme diziler bakmak array_filter() fonksiyonu da vardır
$numeric_data = array_filter($data, "is_numeric");
sıralı dizin,
$numeric_data = array_values($numeric_data);
Referanslar Duruma göre
PHP – Delete selected items from an array
Peter, teşekkürler. – lovespring
kullanabilirsiniz almak için.
$a = array('a','b','c', 'd');
array_splice($a, 2, 1);
var_dump($a);
Çıktı: endeksler boşlukları neden olmadan bir öğe kaldırmak istiyorsanız, array_splice kullanmak gerekir
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "d"
}
çalışabilir ayarlanmazsa kullanarak, ama bu kesintili endeks ile sonuçlanır.
$a = array('a','b','c', 'd');
unset($a[2]);
var_dump($a);
Çıktı:
Gördüğünüz gibiarray(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[3]=>
string(1) "d"
}
, sayısıdır üst sınır bir ölçüsü olarak 1 - count (a $) kullanarak diziyi sürekli tekrarlanması, bu bazen bir sorun olabilir Şimdi 3, ancak son elemanın indeksi de 3'tür.
Benim tavsiyem, sayısal indeksli diziler için array_splice kullanmak ve sayısal olmayan indekslerle sadece diziler için (diziler için) unset kullanmaktır.
alternatif olarak 'unset ($ a [2]); $ a = array_values ($ a); ' – nickf
- 1. Yeniden düzenlemeden diziden öğeyi silmenin en iyi yolu
- 2. WSO2 karbonundaki bir kiracıyı silmenin en iyi yolu nasıl?
- 3. GWT'de iki JavaScriptObject öğesini karşılaştırmanın en iyi yolu nedir?
- 4. Jmeter'da en iyi yolu bulmanın en iyi yolu nedir?
- 5. Clojure'deki bu dizi dönüşümü işlemenin en iyi yolu nedir?
- 6. Boost :: thread nesnesini, iş tamamlandıktan hemen sonra silmenin en iyi yolu nedir?
- 7. Java - 2D dizi yazdırmanın en iyi yolu?
- 8. core.clj'yi kurmanın en iyi yolu nedir?
- 9. Dosyayı sunucudan indirmenin en iyi yolu nedir
- 10. Ember.js'de olayları işlemenin en iyi yolu nedir?
- 11. Perl'de ekranı temizlemenin en iyi yolu nedir?
- 12. Bir animasyonu sürmenin en iyi yolu nedir?
- 13. Kitaplığı zenginleştirmeyi en iyi yolu scala'da nedir?
- 14. Javascript yürütme işleminin en iyi yolu nedir?
- 15. php'de uluslararasılaşmanın en iyi yolu nedir?
- 16. Nesneleri kapsayıcılarda paylaşmanın en iyi yolu nedir?
- 17. Süreyi saklamanın en iyi yolu nedir? MySQL
- 18. Gözlemlenebilir klonlamanın en iyi yolu nedir?
- 19. Kullanıcı bildirimlerini saklamanın en iyi yolu nedir?
- 20. Denemekten kaçınmanın en iyi yolu nedir?
- 21. ClickOnce dağıtımlarının oluşturulmasının en iyi yolu nedir
- 22. Basit sayılar tanımanın en iyi yolu nedir?
- 23. İç ürünleri oluşturmanın en iyi yolu nedir?
- 24. Python'da HTML işlemenin en iyi yolu nedir?
- 25. DateTime'ı çerezlere depolamanın en iyi yolu nedir?
- 26. Yığın dosyasındaki dizinlerin bir ağacını silmenin en hızlı yolu
- 27. en iyi yolu
- 28. En yeni glibc gerektirmeyen yazılımlar oluşturmanın en iyi yolu nedir?
- 29. Bir ilişkisel veritabanında dizinin saklanmasının en iyi yolu nedir?
- 30. Kendi GPG/PGP parolanızı güçlendirmek için en iyi yolu kullanmanın en iyi yolu nedir?
Neden array_splice yerine array_values ile birleştirilmiş unset'i kullandınız? – John
@John: Tek bir diziden birkaç öğeyi kaldırmak istediğinizde düşünebileceğim bir senaryo. 'Unset()' -way ile değerleri değiştirmek zorunda kalmadan değerleri kaldırabilirsiniz - eğer indekslemeyi normalleştirmek için array_values () ile diziyi çalıştırırsanız. Bu, array_splice() 'i birkaç kez kullanmaktan daha temiz ve hızlıdır. –