2017-02-13 4 views
0

私はルートサービス管理パネルの価格設定フォームを作成しようとしています。PHP/MySQL価格設定ルート

私はdbにポイントA、B、C、Dを持っているとしましょう。 これらは1つのテーブルから収集されます。 次の表では、「from」、「to」、「price」を入れたいと思います。 > B
< - - > C
< - > D
B < - > C
B
<:私は価格のために、以下の入力を必要とする4点の例で

< - > D
C < - > D
(ルートの可能な脚ごとに1つ)。

私は入力フィールドを生成する点の結果を得たから、どのようなアプローチをとるべきですか? PHPでのみこれを解決できますか、それともjsで書く必要がありますか?

これらの入力フィールドを手動で出力することに問題はありませんが、ポイント数が少なくとも2ポイントから15ポイントのように変化する可能性があるため、自動化する必要があるという問題があります。

+0

だからあなただけのそれぞれの可能なポイントの入力与えられたすべての可能なルートのリストを取得しようとしていますか? '[a、b、c、d]'を指定すると、上記の[[a、b]、[a、c] ... [b、c] ...など]のようなポイントのリストが生成されます。 '? –

+0

また、 '[a、b、c、d]'は 'b - > a'のように後ろに行くことが可能ですか?または、脚がすべてソートされた順番になっていると仮定して、一方向にしか進まないのでしょうか?どちらの場合でも、リストを取得するのは非常に簡単で、あなたが望む/必要とするものを見つけようとするだけです。 –

+0

正解、私はポイント間のすべての可能なルートのリストを取得しようとしています。プログラムの予約部分に戻ることは可能ですが、一方のフィールドは両方向を意味し、魔女は[a、c]の1つのフィールドであり、2つのフィールド[a、c]、[c、a] 。 (両方向の同じ価格とdbの1つのエントリのみ)。 – user5537574

答えて

1

ここではポイントのリストを取り、要求したようなポイントのすべての組み合わせを含む2次元配列を返す単純な関数です。

Demo

<?php 

function calculateRoutes($points){ 
    //our output array 
    $out = array(); 

    //reset the index of our points to ensure they are 0 to N-1 
    $points = array_values($points); 

    //loop over the points once 
    for($i=0; $i<count($points) - 1; $i++){ 
     //loop over the points again, offset by 1 
     for($j=$i+1; $j<count($points); $j++){ 
      //add to our output array the two points 
      $out[] = array($points[$i], $points[$j]); 
     } 
    } 

    //return the final result 
    return $out; 
} 

$points = array('A', 'B', 'C', 'D'); 

$routes = calculateRoutes($points); 

print_r($routes); 
+0

多くの感謝!完璧な作業! – user5537574

関連する問題