удалить элемент из массива на основе его значения?

у меня есть эквидистантная антенная решетка с ключами и значениями.

существует ли простой способ удалить элемент массива на основе его значения, или я имею к циклу foreach его через и проверяю каждое значение для удаления его?

10
задан ajsie 30 January 2010 в 22:17
поделиться

4 ответа

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 обратного вызова (например, имя функции как строка). Вы также можете использовать функцию генерации функций, если значение поиска не является постоянным.

11
ответ дан 3 December 2019 в 13:32
поделиться

Если ваш массив имеет уникальные значения, вы можете перевернуть их Array_Flip

0
ответ дан 3 December 2019 в 13:32
поделиться

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

29
ответ дан 3 December 2019 в 13:32
поделиться

Это можно сделать с помощью комбинации array_search() и array_splice().

Нетестировано, но должно работать для массивов , которые содержат значение только один раз:

$array = array("Apples", "strawberries", "pears");
$searchpos = array_search("strawberries", $array);
if ($searchpos !== FALSE) {
  array_splice($array, $searchpos, 1);
}
3
ответ дан 3 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: