parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Можно как-то изловчиться и сделать ^хеш_A.intersects[хеш_B][$.by_value(true)] - т.е. не по ключам, а по их значениям (если они строки) без foreach / for ?

andylars 10.07.2016 20:28 / 10.07.2016 21:06

Хочется проверять есть ли общие значения у двух хешей, но не хочется крутить цикл.
Хеши, как правило, вида:
$.0[A] $.1[B]

А значения всегда is string
Или хотя бы какой-то а-дя ^таблица.locate[] только для хеша

Думаю может как-то их можно в один приём в таблицу, потом таблицу развернуть
и значения сделать ключами хеша, а там и intersects уже есть.

Т.е. при сравнении мы можем (хотелось бы) превратить значения в ключи (учитывая что ключи уникальны, т.е. сложатся, что логично), но есть ли ограничения для длины имени ключей, ведь строки могут быть длинными...


Ну или как-то в приём без циклов - превратить это в таблицы вида,
0   1   2
A   B   C
которые можно потом развернуть (транспорнировать) а там уже есть locate



P.S.: сам пока склоняюсь к тому, что наборы параметров которые требуют сравнения с "разрешенным" набором других параметров - больше не буду хранить в значениях хеша,
а тупо делать булевые ключи
$.allowed_ip[
   $.[$ip1](true)
   $.[$ip2](true)
   $.[$ip3](true)
]
тут и intersect из коробки и add и union.... хотя конечно это извращение...