3v4l.org

run code in 300+ PHP versions simultaneously
<?php $cards = [ [ "from" => "Barcelona", "to" => "Gerona Airport", ], [ "from" => "Stockholm", "to" => "New York JFK", ], [ "from" => "Gerona Airport", "to" => "Stockholm", ], [ "from" => "New York JFK", "to" => "Amsterdam", ], [ "from" => "Amsterdam", "to" => "London", ], [ "from" => "Madrid", "to" => "Barcelona", ] ]; $result = []; function doSort($cards, &$result, $start = "Madrid") { foreach ($cards as $key => $card) { if ($card["from"] === $start) { $result[] = $card; doSort($cards, $result, $card["to"]); } } } doSort($cards, $result); print_r($result);

preferences:
117.55 ms | 404 KiB | 5 Q