Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбрать соседние элементы в ассоциативном массиве, Иеется ввиду предыдущий и следующий 
:(
    Опции темы
AXS
Дата 15.7.2010, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: -1
Всего: -1



Есть массив:
Код

  $arr = array("one"=>"red", "two"=>"green", "three"=>"blue", "bla"=>"blabla", "fig"=>"znaet");


Допустим в скрипт передан параметр ?id=two
Нужно вывести:

Код

  echo $arr[$_GET['id']];


...и ещё предыдущий от two, и следующий.

Как их вычислить не прибегая к перебору?

PS: Кроме того если указаный элемент является первым или последним надо сообщить об этом.
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
skyboy
Дата 15.7.2010, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(AXS @  15.7.2010,  05:30 Найти цитируемый пост)
Как их вычислить не прибегая к перебору?

вариант 0.
шаг 0. выбрать массив ключей. array_keys.
шаг 1. найти позицию переданного параметра в массиве ключей. array_search. 
шаг 2. выбрать из массива ключей следующий и предыдущий ключ.
шаг 3. из исходного массива выбрать значения по имеющимся ключам.
вариант 1.
переработать структуру данных, чтоб не пришлось заниматься подобным поиском.
PM MAIL   Вверх
ksnk
Дата 15.7.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Код

$arr = array("one"=>"red", "two"=>"green", "three"=>"blue", "bla"=>"blabla", "fig"=>"znaet");

$bla='bla';
printf ('total %s values, "%s" is %s -th',count($arr),$bla, array_search ($bla,array_keys($arr)));



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.