Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаление элемента массива, встроенная функция

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ant
Отправлено: 06 Апреля, 2012 - 06:37:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Янв. 2011  
Откуда: Украина, Крым


Помог: 0 раз(а)




Допустим есть такой массив:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $arr[0]=12;
  3.   $arr[1]=4;
  4.   $arr[2]=86;
  5.   $arr[3]=17;
  6.   $arr[4]=2;
  7.   $arr[5]=64;
  8. ?>

То есть есть массив, индекс от 0 до количество элементов минус 1.
Допустим нужно удалить элемент массива с индексом 2 ($arr[2]). Есть ли встроенная функция в php, чтобы при удалении элемента массива индекс всех последующих элементов смещался на единицу назад. То есть в данном случае при удалении $arr[2] мы получили такой массив:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $arr[0]=12;
  3.   $arr[1]=4;
  4.   $arr[2]=17;
  5.   $arr[3]=2;
  6.   $arr[4]=64;
  7. ?>

Я могу удалить элемент массива (unset) и манипулированием сместить остальные элементы, но меня интересует, есть ли именно встроенная функция php, которая позволяет это сделать?
 
 Top
DelphinPRO
Отправлено: 06 Апреля, 2012 - 07:26:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




unset($arr[3])
sort($arr)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
ant
Отправлено: 06 Апреля, 2012 - 07:38:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Янв. 2011  
Откуда: Украина, Крым


Помог: 0 раз(а)




DelphinPRO
Спасибо!
 
 Top
ololowke
Отправлено: 06 Апреля, 2012 - 13:23:40
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




DelphinPRO пишет:
unset($arr[3])
sort($arr)

sort($arr); разве не отсортирует массив по возрастанию значений?
 
 Top
DelphinPRO
Отправлено: 06 Апреля, 2012 - 13:51:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ololowke, да. и ключи сбрасывает, что автору и нужно Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DlTA
Отправлено: 06 Апреля, 2012 - 14:52:46
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




DelphinPRO пишет:
ololowke, да. и ключи сбрасывает, что автору и нужно

не уверен

ant, а зачем сбрасывать ключи?
 
 Top
ant
Отправлено: 06 Апреля, 2012 - 14:56:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Янв. 2011  
Откуда: Украина, Крым


Помог: 0 раз(а)




DlTA
Есть массив. Нужно удалить любой элемент и сбросить ключи (то есть чтобы получился тот же массив, но без удаленного элемента, индексы по порядку). Как в примере в первом посте. Вариант с sort() вроде вполне рабочий.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB