PHP/MySQL 定价路线
PHP/MySQL Pricing routes
我正在尝试为路线服务管理面板创建定价表。
假设我在数据库中得到了 A、B、C 和 D 点。
这些是从一个 table 中收集的。
在接下来的 table 中,我想放一个 'from'、'to' 和 'price'。
在四个点的示例中,我需要以下价格输入:
A<->B
A<->C
A<->D
B<->C
B<->D
C<->D
(路线的每条可能路段一个)。
从得到点的结果到生成输入字段,我应该采取什么方法?我可以只用 PHP 解决这个问题还是我需要用 js 写它?
手动输出这些输入字段没有问题,问题是它需要自动化,因为点数可能从至少两个点到 15 个点不等。
这是一个简单的函数,它将接收点列表和 returns 一个二维数组,其中包含您请求的点的所有组合。
(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);
我正在尝试为路线服务管理面板创建定价表。
假设我在数据库中得到了 A、B、C 和 D 点。 这些是从一个 table 中收集的。 在接下来的 table 中,我想放一个 'from'、'to' 和 'price'。
在四个点的示例中,我需要以下价格输入:
A<->B
A<->C
A<->D
B<->C
B<->D
C<->D
(路线的每条可能路段一个)。
从得到点的结果到生成输入字段,我应该采取什么方法?我可以只用 PHP 解决这个问题还是我需要用 js 写它?
手动输出这些输入字段没有问题,问题是它需要自动化,因为点数可能从至少两个点到 15 个点不等。
这是一个简单的函数,它将接收点列表和 returns 一个二维数组,其中包含您请求的点的所有组合。
(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);