Nothing like this exists off the shelf.
There are several ways to do what you want. If you are building the array all at once, you can keep a list of the origin points (point cellName) so you can look up the cell which has been placed. Parse this list to decide your next cell.
The second way is to use dbGetTrueOvelaps at the point of placement to find the placement at that point.
Your comparison would be the cellName as the name is a logical instance name on the instance and not corresponding to the cell.
You may have to make some type of data structure which maps the previous placement to the next placement, I would probably make this an assoc list (placedCellName newCellName).