3v4l.org

run code in 300+ PHP versions simultaneously
<?php $people = [ [ "sponsor" => "Zack", "referal" => "Joey", "status" => 1, ], [ "sponsor" => "Joey", "referal" => "Tracy", "status" => 0, ], [ "sponsor" => "Tracy", "referal" => "Helen", "status" => 0, ], [ "sponsor" => "Helen", "referal" => "Richard", "status" => 0, ], [ "sponsor" => "Felipe", "referal" => "Juan", "status" => 0, ], [ "sponsor" => "Richard", "referal" => "Mike", "status" => 0, ], ]; static $i = 0; function getParentSponsor($referal, $people) { foreach ($people as $pair) { if ($pair["referal"] === $referal) { if ($pair["status"] === 1) { return $pair["sponsor"]; } else { return getParentSponsor($pair["sponsor"], $people); } return $pair["sponsor"]; } } $i++; } echo getParentSponsor("Mike", array_reverse($people));

preferences:
42.91 ms | 402 KiB | 5 Q