Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как удалить элемент массива в РНР?

518
04 сентября 2006 года
Andreika
101 / / 14.02.2003
В PHP есть массив, в котором экземпляры некоего класса. как удалить элемент с нужным индексом и сохранить остальные?
583
04 сентября 2006 года
#define
150 / / 03.12.2002
unset($MyArray[$i]) ?
518
04 сентября 2006 года
Andreika
101 / / 14.02.2003
Не поможет. После unset в массиве образуется "дырка", которая не принадлежит классу и соответственно при переборе массива вызов методов класса для элемента-дырки выдает ошибку.

То есть, размер массива не изменяется, все 'tktvtyns в норме, а на месте unset-енного элемента образуется элемент с empty()==true

Еще варианты?
13
04 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Еще варианты стандартны - работать с массивом как со стеком или как с очередью. Либо писать свою функцию сдвига всего хозяйства.
Для реализации "стека" есть функции array_push() и array_pop()
Для "очереди" array_push() и array_shift()
1.8K
04 сентября 2006 года
LastSoul
279 / / 28.12.2005
а если:
 
Код:
$MyArray[$i]=$MyArray[count($MyArray)-1];
 unset($MyArray[count($MyArray)-1]);

если же конечно ненужно чтоб последний элемент всегда оставался на своем месте
15
04 сентября 2006 года
shaelf
2.7K / / 04.05.2005
Я просто написал для этого функцию и не парюсь особо (работает в корзине на ура)))
 
Код:
function refreshIndex($array)
{
    $i = 0;
    foreach($array as $value) {
        $returnArray[$i] = $value;
        $i++;
    }
    return $returnArray;
}
16K
05 сентября 2006 года
Бян
43 / / 05.09.2006
[QUOTE=Andreika]Не поможет. После unset в массиве образуется "дырка", которая не принадлежит классу и соответственно при переборе массива вызов методов класса для элемента-дырки выдает ошибку.

То есть, размер массива не изменяется, все 'tktvtyns в норме, а на месте unset-енного элемента образуется элемент с empty()==true

Еще варианты?[/QUOTE]
Берем мануал к php. Ищем функцию unset(). Читаем статью до конца. Понимаем что unset() нам не подходит. В конце видим строцку "See also ...". А в ней ссылку на статью про функцию array_splice(). И, о чудо, находим нужную нам функцию.

Резюме:
1. Для вашей задачи использоуйте array_splice();
2. Учитесь читать доки.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог