我有一个数组:
$cards = [
[
"from" => "Barcelona",
"to" => "Gerona Airport",
],
[
"from" => "Stockholm",
"to" => "New York JFK",
],
[
"from" => "Gerona Airport",
"to" => "Stockholm",
],
[
"from" => "Madrid",
"to" => "Barcelona",
]
];
我需要对它进行排序,以使旅行持续进行,其中from
与上一个to
匹配,如果不匹配,则将其设置为起始点,例如:
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 )
)
我正在尝试使用usort
:
usort($cards, function ($a, $b) {
return ( $a["to"] === $b["from"] ) ? -1 : 1;
});
print_r($cards);
但是它没有按照描述的方式排序。有什么想法吗?