<?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);
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Array
(
[0] => Array
(
[from] => Madrid
[to] => Barcelona
)
[1] => Array
(
[from] => Barcelona
[to] => Gerona Airport
)
[2] => Array
(
[from] => Gerona Airport
[to] => Stockholm
)
[3] => Array
(
[from] => Stockholm
[to] => New York JFK
)
[4] => Array
(
[from] => New York JFK
[to] => Amsterdam
)
[5] => Array
(
[from] => Amsterdam
[to] => London
)
)
preferences:
141.78 ms | 410 KiB | 5 Q