Bir diziden bir eleman çıkarma (PHP)

5 Cevap

Ben bir PHP diziden bir öğeyi kaldırmak (ve dizi boyutunu küçültmek) istiyorum. Sadece PHP docs bakarak, bu (array_slice kullanılarak yapılabilir görünüyor) ve array_merge ()

bu yüzden array_merge () ve array_slice bazı kombinasyonu çalışacaktır (kafamın üst kapalı) tahmin ediyorum. Ancak, array_slice () bir dizin (bir anahtar) gerektirir, bu yüzden hızlı bir çözüm için birlikte bu işlevleri Arnavut kaldırımı nasıl emin değilim.

Herkes önce böyle bir işlevi uygulamıştır?. Ben sadece bir kaç satır uzunluğunda olmalıdır eminim, ama ben bir şekilde (onun o günlerden biri) kafamın etrafında alınamıyor ...

Bu soruyu yazarken aslında, ben sadece bu sevimsiz kesmek ile geldi ....

function remove_from_array(array $in, value) {
   return array_diff($in, (array)$value);
}

Çok çirkin? ya da (herhangi bir şok edici yan etkisi olmadan) çalışır?

5 Cevap

Bu işlevsellik zaten var; unset bakabilirsiniz.

http://php.net/manual/en/function.unset.php


$a = array('foo' => 'bar', 'bar' => 'gork');
unset($a['bar']);
print_r($a);

çıkış olacaktır:

array(
[foo] => bar
)

Sadece diziden değerleri istediğini seçmek için bir geri arama işlevini kullanan array_filter işlevi var.

Eğer değer tarafından bir unset istiyorum. değerine göre dizi ve unset tuşu döngü.

unset($my_array['element']);

Çalışmadı mı?

Bu kod tek array_filter ($ dizi) çağrısı ile değiştirilebilir