Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2009, 23:57   #1
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию Удаление элемента из массива

Есть ли функция для удаления элемента из массива?Стек не предлагать.
Если нету то код не пишите а просто скажите что нету.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 13.02.2009, 00:35   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

http://au.php.net/manual/ru/ref.array.php
array_pop
SkyM@n вне форума Ответить с цитированием
Старый 13.02.2009, 05:52   #3
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

SkyM@n, помоему нада использовать array_splice, а не array_pop
FANATID вне форума Ответить с цитированием
Старый 13.02.2009, 08:54   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,549
По умолчанию

Используйте unset().
Arigato вне форума Ответить с цитированием
Старый 13.02.2009, 14:06   #5
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

Цитата:
Используйте unset().
unset подойдет ток для ассоциативного массива, если её сделать для обычного, то при обращении к этому элементу будет пустота.
или я не прав?
FANATID вне форума Ответить с цитированием
Старый 13.02.2009, 16:03   #6
ShowMeLove
 
Аватар для ShowMeLove
 
Регистрация: 10.02.2009
Сообщений: 5
По умолчанию

Не прав, он в любом случае удалит элемент из массива, на крайний случай не обязательно удалять элемент, его можно просто обнулить ...
Цитата:
$array[0] = null;
ShowMeLove вне форума Ответить с цитированием
Старый 13.02.2009, 16:14   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,549
По умолчанию

Цитата:
unset подойдет ток для ассоциативного массива, если её сделать для обычного, то при обращении к этому элементу будет пустота.
или я не прав?
Ну элемент-то она удалит, т.е. элемента с таким индексом вообще не будет существовать.
Arigato вне форума Ответить с цитированием
Старый 13.02.2009, 17:04   #8
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

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

PHP код:
$array[0] = 'red';
$array[1] = 'green';
$array[2] = 'blue';
$array[3] = 'yellow';

unset(
$array[1]);

for (
$i=0$i count($array); $i++)
    echo 
$array[$i].'<br>'
вот такой код вернет такой результат:
PHP код:
red

Notice
Undefined offset1 in T:\home\virtual\test\array.php on line 11

blue 
поэтому вместо unset($array[1]) лучше использовать
$array = array_splice($array, 1, 1);
но она почему то возвращает не весь массив кроме green, а только сам green. очень странно работает, совсем не так как описано в документации
FANATID вне форума Ответить с цитированием
Старый 13.02.2009, 17:07   #9
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от FANATID Посмотреть сообщение
...
конструкция "for" слишком уязвима чтобы ее использовать в данном случае, заместо нее существует цикл foreach($array as $key=>$value){...} которому без разницы ассоциативный массив в нее загонять или индексный
свободен...
wall66 вне форума Ответить с цитированием
Старый 13.02.2009, 21:39   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,549
По умолчанию

wall66 совершенно верно заметил.
Более того, ТС не обозначил, в каком контексте это удаление будет использоваться. Может у него как раз ассоциативный массив.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элемента массива со сдвигом последующих beregok Общие вопросы C/C++ 11 09.01.2009 17:11
Удаление элемента динамического массива Dogmat Помощь студентам 6 13.07.2008 14:33
Удаление элемента массива chiffa Общие вопросы Delphi 1 03.01.2008 19:24
Поиск позиции элемента несортированного массива gdneon Microsoft Office Excel 4 16.04.2007 08:08