2016-02-10 3 views
-1

Есть ли способ удалить элемент из массива? Это корзина, в которой хранятся идентификаторы предметов. Я хочу сделать функцию удаления.Как удалить элемент массива по индексу

Например - cart_handler.php удалить = 2687

array(5) { [1967]=> float(1) [1966]=> float(1) [2233]=> float(5) [2687]=> float(1) [2081]=> float(4) } 
+2

unset ($ array [ключ]) не работает? – Yurich

+0

нет. Я попробовал это. –

+0

показать вам код, как вам удалить этот элемент. – Naumov

ответ

1

Да, вы можете, проще всего было бы найти идентификатор позиции в массиве, а затем снята с охраны ключ, связанный с ним? - а затем в качестве расширения вы можете переделать массив, чтобы исправить ключи массива. Обращаем ваше внимание, что: Я еще не поставил валидацию на $arrayKey и что она возвращает, вы должны должны убедиться, что функция array_search возвращается, как ожидалось, прежде чем отключать ключ массива только для того, чтобы быть в безопасности.

Так что-то вроде этого:

$data = [1967, 1966, 2233, 2687, 2081]; 
$arrayKey = array_search(1966, $data); 
unset($data[$arrayKey]); 

Указанный идентификатор продукта будет снята с охраны с тем, что, просто заменить 1966 с $_GET переменной. т.е.

array_search($_GET['delete'], $data)

И $data массив будет список всех допустимых идентификаторов продуктов, которые вы могли бы вытащить из базы данных, или там, где вы храните их.

Если вы хотите повторно базу ключевых индексов после этого вы можете сделать:

$data = array_values($data);

Что выше делает исправляет ключевые массив индексов, когда вы сбросить элемент будет удален из массив, но все ключи сохранят свои текущие индексы. Таким образом, индексы массивов могут прогрессировать так: 0, 1, 3, 4. Если вы повторно основали массив с вышесказанным, они снова пройдут естественным образом: 0, 1, 2, 3.

Надеюсь, что это поможет, любые вопросы, просто дайте мне знать.

Смежные вопросы