$waypoints = array(
 
    "a" => array(1,2),
 
    "b" => array(2,3),
 
    "c" => array(2,4),
 
    "d" => array(4,5),
 
    "e" => array(5,9),
 
    "f" => array(6,7),
 
    "g" => array(7,8),
 
    "h" => array(7,9),
 
    "i" => array(9,10),
 
    "j" => array(10,11),
 
    "k" => array(11,12),
 
    "l" => array(10,13),
 
    "m" => array(13,14),
 
    "n" => array(12,10),
 
    "o" => array(12,15),
 
    "p" => array(15,16));
 
// circular reference is j(10,11), k(11,12), n(12,10)
 
// waypoint keys (a, b, ..) are optional
 
try {
 
    Anti_Util_CircularReference::checkArray($waypoints);
 
    echo "no circular reference found";
 
} catch (Anti_Util_CircularReference_Exception $exception) {
 
    echo $exception->getMessage(),
 
        "<hr />",
 
        "<pre>",
 
        print_r($exception->getWaypointTrace(), true),
 
        "</pre>",
 
        "<hr />",
 
        "<pre>",
 
        print_r($exception->getCausingWaypointTrace(), true),
 
        "</pre>";
 
}
 
?>
 
 |