у меня есть эквидистантная антенная решетка с ключами и значениями.
существует ли простой способ удалить элемент массива на основе его значения, или я имею к циклу foreach его через и проверяю каждое значение для удаления его?
http://us3.php.net/array_filter
PHP 5.3 Пример для удаления "foo" из массива $ a:
<?php
$a = array("foo", "bar");
$a = array_filter($a, function($v) { return $v != "foo"; });
?>
Второй параметр может быть любым видом PHP обратного вызова (например, имя функции как строка). Вы также можете использовать функцию генерации функций, если значение поиска не является постоянным.
Если ваш массив имеет уникальные значения, вы можете перевернуть их Array_Flip
array_diff:
$array = array('a','b','c');
$array_to_remove = array('a');
$final_array = array_diff($array,$array_to_remove);
// array('b','c');
Редактировать: для получения дополнительной информации: http://www.php.net/array_diff
Это можно сделать с помощью комбинации array_search()
и array_splice()
.
Нетестировано, но должно работать для массивов , которые содержат значение только один раз:
$array = array("Apples", "strawberries", "pears");
$searchpos = array_search("strawberries", $array);
if ($searchpos !== FALSE) {
array_splice($array, $searchpos, 1);
}