<?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