kendi değerine göre diziden öğe kaldırmak?

4 Cevap

Ben anahtarları ve değerleri ile normal bir dizi var.

kendi değerine göre dizi öğe kaldırmak için basit bir yolu var ya i yoluyla da-döngü foreach ve kaldırmak için her değerini kontrol etmek için var?

4 Cevap

http://us3.php.net/array_filter

PHP 5.3 örnek, dizi $ a "fan" kaldırmak için:

<?php
$a = array("foo", "bar");
$a = array_filter($a, function($v) { return $v != "foo"; });
?>

İkinci parametre (örneğin, bir dizge olarak işlevin adı) PHP geri çağırma herhangi bir tür olabilir. Arama değeri sabit değilse de bir işlevi üreten işlevini kullanabilirsiniz.

array_diff:

$array = array('a','b','c');
$array_to_remove = array('a');

$final_array = array_diff($array,$array_to_remove);
// array('b','c');

edit: Daha fazla bilgi için: http://www.php.net/array_diff

Sen array_search() ve array_splice() bir kombinasyonu ile bunu yapmak mümkün olmalıdır.

Denenmemiş ama arrays that contain the value only once: için çalışması gerekir

$array = array("Apples", "strawberries", "pears");
$searchpos = array_search("strawberries", $array);
if ($searchpos !== false)
 $array = array_splice($array, $searchpos, 1);

Diziniz benzersiz değerleri yoksa, array_flip ile çevirebilirsiniz