PHP/MySQL 定价路线

问题描述 投票:0回答:1

我正在尝试为路线服务管理面板创建定价表。

假设我在数据库中得到了点 A、B、C 和 D。 这些是从一张表中收集的。 在下一张表中,我想输入“从”、“到”和“价格”。

在四点的示例中,我需要以下价格输入:
A<->B
A<->C
A<->D
B<->C
B<->D
C<->D
(路线的每条可能的路段都有一个)。

我应该采取什么方法来获得点的结果来生成输入字段?我可以只用 PHP 解决这个问题还是需要用 js 编写?

手动输出这些输入字段没有问题,问题是需要自动化,因为点数可能从至少 2 点到 15 点不等。

php permutation
1个回答
1
投票

这是一个简单的函数,它将接受点列表并返回一个二维数组,其中包含您请求的点的所有组合。

演示

<?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);
© www.soinside.com 2019 - 2024. All rights reserved.