如果我理解正确的话:
$rows = array
(
0 => array('id' => 8, 'uid' => 82, 'rid' => 84),
1 => array('id' => 7, 'uid' => 24, 'rid' => 82),
2 => array('id' => 6, 'uid' => 24, 'rid' => 83),
);
function fetchByUidRec($uid, $counter = 0)
{
global $rows;
// or in your case
// $rows = SELECT FROM table WHERE uid = $uid;
$data = array();
foreach ($rows as $row)
{
if ($row['uid'] == $uid)
{
$data[] = array_merge($row, array('layer' => $counter));
$data = array_merge($data, fetchByUidRec($row['rid'], $counter++));
}
}
return $data;
}
例:
echo '
';
print_r(fetchByUidRec(24));
echo '
';输出:
Array
(
[0] => Array
(
[id] => 7
[uid] => 24
[rid] => 82
[layer] => 0
)
[1] => Array
(
[id] => 8
[uid] => 82
[rid] => 84
[layer] => 0
)
[2] => Array
(
[id] => 6
[uid] => 24
[rid] => 83
[layer] => 1
)
)