Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Многие из нас сталкивались с такой задачей: необходимо получить искомый нами объект, из массива однотипных объектов. Безусловно, эта тривиальная задача, и она легко решается при помощи обычного цикла
Да, массив ссылок я возьму проходом по массиву
Помешает то, что данные из второго источника тоже массив
В любом случае получается пройти надо как первый массив, так и второй.
он то [join] как раз есть. Речь о ситуации когда различные данные берутся из различных источников (разные типы баз, разные сервера, и т.п.)
Почему это массив, а не хэш-таблица? Что мешает свернуть его в хэш-таблицу, раз уж вы не можете по каким-то причинам получить его хэш-таблицей?
Вопрос в том, сколько раз вы будете проходить каждый массив.
Если бы у вас был join в платформе (а не на сервере БД), то вас бы не волновало, из каких источников берутся данные.
Потому что это например результать fetchall() из РСУБД, а он хоть как вернет массив.
Для свертки в хеш-таблицу эти проходы и нужны.
Тогда я видимо не верно понимаю, что вы понимаете под словом «платформа».
Ну и что вам мешает использовать стандартные хэш-таблицы, а не hardlinks? Зачем вам лишний уровень абстракции?
В вашем случае — PHP с используемыми вами библиотеками.
Мне ничего не мешает, собственно так и делаю, хоть это и не слишком ресурсо-оптимально.
Я лишь привел пример, когда может понадобиться и массив и хеш-таблица.
Какой способ, по-вашему, более оптимален?
Вопрос был не о том, когда может понадобиться хеш-таблица, вопрос был о том, зачем использовать «жесткие ссылки» (хотя в доках это называется просто reference).
&$this->List[]
Жесткая ссылка — переменная, представляющая собой синоним другой переменной, на которую она ссылается. Чтобы создать жесткую ссылку, перед переменной необходимо написать "&".
Обход циклов посредством жестких ссылок