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]   

> Описание: С учетом того что в массиве могут быть промежутки
ShuvaL
Отправлено: 13 Февраля, 2011 - 19:33:39
Post Id



Гость


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


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




Как узнать номер последнего элемета в нумерованном массиве?
С учетом того что в массиве могут быть промежутки т.е. элементов в массиве может быть восемь, а номер последнего 9 т.к. третий элемент был удален??
(Добавление)
Ну или как можно узнать название имя последней переменной в ассоциативном массиве?
т.е. если последний элемент $array["apple"] то получить нужно apple =)
 
 Top
Invert
Отправлено: 13 Февраля, 2011 - 20:05:57
Post Id



Частый гость


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


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




Прокрутить через
PHP:
скопировать код в буфер обмена
  1. foreach ( $array as $key => $data )

записать все ключи в массив

и изъять последний, который вам и нужен.
 
 Top
ShuvaL
Отправлено: 13 Февраля, 2011 - 20:10:52
Post Id



Гость


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


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




Cовсем не понял я(

Как занести этот самый ключ в переменную $num?
 
 Top
OrmaJever Модератор
Отправлено: 13 Февраля, 2011 - 20:17:30
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $fruits = array('apple', 'banana', 'cranberry');
  2. end($fruits);
  3. echo key($fruits);


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LEONeso
Отправлено: 14 Февраля, 2011 - 09:25:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




ShuvaL, можно еще count использовать с -1 (нулевой массив)


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Февраля, 2011 - 11:07:06
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




ShuvaL пишет:
элементов в массиве может быть восемь, а номер последнего 9 т.к. третий элемент был удален

Чтоб такого не было, после удаления элемента(ов) юзай array_multisort($array);
Все "пустоты" пропадут и будет упорядочена индексация по ключам.
LEONeso пишет:
count использовать с -1

Не прокатит ни в случае с массивом содержащим ноль элементов, ни в случае удаления некоего элемента.
count(); покажет количество элементов, но не максимальное числовое (INT) значение ключа.
OrmaJever, красиво - возьму на заметку Хорошо
 
 Top
LEONeso
Отправлено: 14 Февраля, 2011 - 12:06:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




DeepVarvar, это да. Все зависит от случая Подмигивание


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
JustUserR
Отправлено: 14 Февраля, 2011 - 13:55:56
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




ShuvaL пишет:
Как узнать номер последнего элемета в нумерованном массиве?
Использование языка PHP предполагает унифицированное применение ассоциативных массивов для хранения любых допустимых списков информационных полей в том числе основанных на числовых индексах - тем не менее для обеспечения прямого доступа к вложенным элементов возможно использование внутреннего параметра счетчика обеспечивающего последовательных переход по элементов в соответсвиии с хронологическим порядком их добавления


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
alkal
Отправлено: 14 Февраля, 2011 - 19:24:50
Post Id


Новичок


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


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




OrmaJever пишет:
#
PHP:
скопировать код в буфер обмена
  1. $fruits = array('apple', 'banana', 'cranberry');
  2. #
  3. end($fruits);
  4. #
  5. echo key($fruits);


идеальный вариант!
 
 Top
JustUserR
Отправлено: 16 Февраля, 2011 - 14:11:50
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




alkal пишет:
Идеальный вариант!
Предполагаемый вариант решения задачи не обеспечивает унифицированной схемы для произвольного случая в котором требуется определение последнего элемента поскольку обеспечивает сдвиг реального внутреннего указателя массива - по этой причине при использовании указаненого варината необходимо проведения сохранения текущей позиции с обеспечением ее последующего восстановления


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
armancho7777777 Супермодератор
Отправлено: 16 Апреля, 2011 - 10:34:40
Post Id



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


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




alkal пишет:
OrmaJever пишет:
#
PHP:
скопировать код в буфер обмена
  1. $fruits = array('apple', 'banana', 'cranberry');
  2. #
  3. end($fruits);
  4. #
  5. echo key($fruits);


идеальный вариант!

Согласен. Сам воспользовался им)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB