очень поздний ответ, но все же.обычно это можно сделать с помощью указателей.У php нет указателей, но есть что-то, называемое pass by reference: http://php.net/manual/en/language.references.pass.php
пример будет выглядеть так:
$shirt = new Node('shirt');
$pants = new Node('pants');
$bag = new Node('bag');
$shirt->relate_to($panths);
$bag->relate_to($panths);
class Node {
protected $type;
protected $relations;
public function relate_to(Node &$node) {
$this->relations[$node->id] = &$node;
}
}
возможно даже создать такие ориентированные отношения:
public function relate(node &$from, node &$to){
$tmp=new relationship($from, $to);
$from->relations[$to->id]=&$tmp;
$to->relations[$from->id]=&$tmp;
}