Bir foreach döngüsü içinde unset dizi elemanı

3 Cevap

Yani burada benim kod:

<?php

$arr = array(array(2 => 5),
             array(3 => 4),
             array(7 => 10));

foreach ($arr as $v) {
    $k = key($v);
    if ($k > 5) {
        // unset this element from $arr array
    }
}

print_r($arr);

// now I would like to get the array without array(7 => 10) member

Gördüğünüz gibi, ben bu dizi sayesinde tek tuş => değer diziler, ben döngü ile başlar ve (bir tek madde dizidir) geçerli öğenin bir anahtarı almak.

Ben 5 daha yüksek bir anahtar, bunu nasıl yapabileceğini ile dizinin elemanlarını unset gerekiyor? Ben de değeri az 50 ya da diğer herhangi bir koşulu ile öğeleri kaldırmak gerekebilir. Temelde ben bir tek öğe ile bir dizidir geçerli dizi öğenin bir anahtarı almak için gerekiyor.

3 Cevap

Foreach döngüsünü kullanarak üzerinde yineleme sırasında bir diziden öğe kaldırmak için PHP is güvenlidir:

foreach ($arr as $key => $value) {
    if (key($value) > 5) {
        unset($arr[$key]);
    }
}

Bunun yinelenmesi sırasında bir koleksiyon eklemek veya silmek için gerçekten güvenli değil. Nasıl orijinal damping sonra, ikinci bir dizi istediğiniz öğeleri ekleme hakkında?