Verwenden Sie Ihre vorhandenen Daten von yo ur zwei Tabellen, könnten Sie LEFT JOIN
Spalten Quelle und Ziel von Routen Ihre INT
Werte Bedeutung bis zum Location.name Spalte übereinstimmen. Dann stellen Sie sicher, dass Sie die Daten durch Quelle Spalte für so bestellen, ist es einfacher, mit PHP später zu sortieren.
MySQL:
SELECT locStart.name as start, locFinish.name as finish FROM `routes`
LEFT JOIN location as locStart
ON routes.source = locStart.id
LEFT JOIN location as locFinish
ON routes.destination = locFinish.id
ORDER BY routes.source
Ausgang:
array (
0 =>
array (
'start' => ' bangalore',
'finish' => 'delhi',
),
1 =>
array (
'start' => ' bangalore',
'finish' => 'mumbai',
),
2 =>
array (
'start' => ' bangalore',
'finish' => 'kolkatta',
),
//Etc....
Dann wird Ihr DB Ergebnisse in mehrdimensionales Array fügen Sie den Quellnamen als Schlüssel.
$stmt = $pdo->query($query);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$newArr;
foreach ($result as $v) {
$newArr[$v['start']][] = $v['finish'];
}
Ausgang:
array (
' bangalore' =>
array (
0 => 'delhi',
1 => 'mumbai',
2 => 'kolkatta',
),
'mumbai' =>
array (
0 => 'delhi',
1 => 'kolkatta',
),
'kolkatta' =>
array (
0 => 'delhi',
),
)
Für das neue Array ausgibt, können Sie eine rekursive Funktion verwenden:
function recurse($newArr, $key=NULL) {
if($key !== NULL) {
foreach ($newArr[$key] as $k=>$v) {
echo '<li>Destination: ' . $v . '</li>';
}
echo '</ul>';
} else {
foreach ($newArr as $k=>$v) {
echo 'Source: ' . $k . '<br><ul>';
recurse($newArr, $k);
}
}
}
Ausgang:
Quelle: bangalore
- Reiseziel: delhi
- Reiseziel: mumbai
- Reiseziel: kolkatta
Quelle: mumbai
- Reiseziel: delhi
- Reiseziel: kolkatta
Quelle: kolkatta
Zuerst benennen Sie Ihre Spalte 'von' & 'zu', um etwas anderes als es ein reservierter MySQL Schlüsselwort ist. – Kitson88
So etwas vielleicht? http://StackOverflow.com/Questions/9535819/Find-all-Paths-between-Two-Graph-Nodes – Yoshi
Dies könnte leicht in das Problem der reisenden Verkäufer werden: https://www.google.de/webhp? sourceid = chrome-instant & ion = 1 & espv = 2 & ie = UTF-8 # q = Reisen + Verkäufer + Problem – ADyson