Map<;的PHP实现;列表,列表>;


PHP implementation for Map<List, List>

我需要在PHP中设计一个数据结构,在那里我可以将一个值集合映射到另一个值的集合。它的用例是用户订阅的映射。

array(
    array('news', 'tech') => array(0, 1),
    array('news', 'tech', 'gossip') => array(2, 3, 4)
)

这里有没有更优化的设计可以使用?什么是PHP中合适的实现?

为了澄清,用户和订阅有一种多对多的关系,您希望能够快速查找给定用户的订阅,反之亦然?

如果是这样,您可以使用的一种设计是一个对象,它封装了两个多映射,一个是User -> Array<Subscription>,一个为Subscription -> Array<User>,并通过在其addremove方法中同时更新它们来维护这两个映射(只需要一个用户和一个订阅作为参数)。