need to correct this Query/Loop to find and start "new branch" in the output
SOLVED (yay!):

I simply put a Start ['s'] toggle, 1/0, in ASSOCS

ASSOCS
p_id    a_id   s   p_to_a      a_to_p
1       2      1   employs     worked for
1       3      0   knows       knows
3       4      0   workedwith  worked with
4       6      0   knows       knows
5       3      1   brother to  sister-in-law to
6       7      1   wife of     husband of
7       3      0   knows       knows
5       1      0   test        test_


and dug it out in my query (a.s AS s):

SELECT a.p_id, a.a_id, 
    CONCAT(p1.fname,' ', p1.lname) as name1,  
    p_to_a,
    CONCAT(p2.fname,' ', p2.lname) as name2, a.s AS s, a.info
        FROM assocs a 
        INNER JOIN persons p1 ON p1.person_id = a.p_id
        INNER JOIN persons p2 ON p2.person_id = a.a_id


stored it and called it in place of the $level switch:

if (!isset($data[$pid])) {
        return;
    }
    if (in_array($pid, $processed)) return; // prevent circular references
    $processed[] = $pid;

    if ($data[$pid]['s']==1) {
     echo "&lt;div class=''&gt;{$data[$pid]['name']}&lt;/b&gt;&lt;/div&gt;"; 
}

/* was » if ($level==0) { */


right, I can't believe it worked, either.