Ручная установка внутреннего указателя на текущий элемент массива

demon_mhm

Новичок
Ручная установка внутреннего указателя на текущий элемент массива

Задача такая: есть ассоциативный массив, необходимо получив по ключу определенный элемент, также получить соседствующие с ним элементы. желательно не проматывая весь массив, т.к. он может быть достаточно объемным.
В ПХП есть функции next() и prev(), которые возвращают следующий и предыдущий элементы относительно внутреннего указателя массива. Есть reset и end, которые могут устанавливать его в начало или конец. Но функции, выставляющей этот указатель по ключу, я не нашел. Как быть?
 
demon_mhm
написать свою?!
алгоритмы правильного обхода массивов есть в гугле.
 
demon_mhm
А почему у тебя порядок элементов определяется внутренним указателем,а не числовым индексом?
 
Vallar_ultra
А вот обходить-то как раз и не хочется, т.к. массив может быть достаточно большой и необходимый ключ может находиться в конце
Гравицапа
потому что массив ассоциативный и ключами являются id элементов, которые не отсортированы, да и вообще, строго говоря, числовыми индексами являться не обязаны
 
Гравицапа
Я, но я не хочу заменять id на числовые индексы, т.к. считаю это избыточностью. Большие массивы нужно делать по возможности более компактными, поэтому я и вынес id элементов в ключи. Опять таки, поиск и выборку делать гораздо проще.
 
потому что это самое логичное предположение.
Но если это не так, то ты можешь рассказать нам, что это за такой большой красивый массив.
 
Фанат Ну, если это важно, то расскажу что массив получается при разборе XML-документа, содержащего описания множества однотипных объектов. Базы нет, все выборки и поиск делаются по массивам.
ЗЫ: надеюсь, это поможет нам найти решение проблемы, а не доказать что ваш собеседник идиот, как это обычно происходит при общении с вами
 
К сожалению, мне самому доказывать никогда не приходится.
собеседники выставляют себя идиотами сами. Вот как ты сейчас.
Вместо того, чтобы заниматься решением своей проблемы, ведешь себя, как партизан на допросе. информацию по твоей проблеме из тебя надо вытягивать клещами, как будто это нам нужно решение, а не тебе. Пугает тебя опять же, не проблема, а то, что тебя назовут идиотом. иногда мне кажется, что самый страшный ужас в мире - это когда тебя называют дураком. во всяком случае половина посетителей этого форума этого так боятся.

Короче.
Первое. Такого оператора в пхп нет.
Второе. Теперь ты, наконец, понял, что использовать ХМЛ вместо базы данных неправильно, а тот, кто тебе это посоветовал - идиот?
Третье. Дарю тебе костыль. Делаешь числовой массив из айдишников записей.
Но не дай бог тебе придется удалить один из элементов.
 
Создай второй массив с id'ами и ищи по нему
[m]array_keys[/m]
[m]array_search[/m]
 
Фанат
:) Я не боюсь признать себя дураком. Поэтому и обращаюсь за советами туда, где надеюсь их найти.
По-моему, я изложил достаточно, чтобы решить задачу "академически", а не искать дыры в предпосылках и выяснять где тут дураки порылись.

Короче.
первое. Это я уже раскопал, полез за советом.
второе. Такая уж стоит задача - работать напрямую с XML без базы. Чтобы объяснить почему и как, мне пришлось бы написать кучу текста, которая привела бы только к обсуждению недостатков работы с XML и преимуществ работы с базой. Я же предпочел обратиться с конкретным вопросом к знающим людям.
третье. до этого я и сам додумался, спасибо большое. Просто хотелось знать, может это как-то можно решить штатными средствами ПХП
 
demon_mhm
Оффтопик: если хочешь что-то решить ШТАТНЫМИ средствами php - то есть замечательный сайт http://www.php.net - а там поиск по документации, в которой описаны все встроенные возможности.....
 
Vallar_ultra
Спасибо, оттуда и пришел :) Просто бывают ситуации, когда ищешь немного не там, ну и соответственно не находишь ничего. А умные люди могут ткнуть носом где искать :)
 
Сверху