V PHP nedělám, ale zkusil bych něco takového:
function getk($array,$cid)
{
$parent = [];
foreach($array as $obj)
{
if($obj->cid === $cid)
{
$parent[] = $obj->title;
echo $obj->title;
if($obj->pid > 0)
{
array_push($parent, ...getk($array,$obj->pid));
}
}
}
return $parent;
}
$vysledek = getk($array,10);