php函数中的数组未定义


array in php function undefined

为了训练目的,我需要制作一个函数,该函数告诉我两个城市之间的"旅行成本"。书告诉我键入这个函数:

<?php
function travelcost($start, $destination)
{
$travelcost = array();
$travelcost[1] = array();
$travelcost[2] = array();
$travelcost[3] = array();
$travelcost[4] = array();
$travelcost[1][1] = 0;
$travelcost[1][2] = 30;
$travelcost[1][3] = 60;
$travelcost[1][4] = 90;
echo($travelcost[$start][$destination] . " Euro's");
}
?>

此外,我创建了这个表格来请求开始和目的地:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Start: <select name="start" value="true">
<option value="start[]">Amsterdam</option>
<option value="start[]">Utrecht</option>
<option value="start[]">Den Haag</option>
<option value="start[]">Rotterdam</option>
</select>
Destination: <select name="destination" value="true">
<option value="destination[]">Amsterdam</option>
<option value="destination[]">Utrecht</option>
<option value="destination[]">Den Haag</option>
<option value="destination[]">Rotterdam</option>
</select>
<p><input type="submit" name="calculate" value="Calculate"</p>
</form>

紧随其后的是:

<?php
if(isset($_POST["start"])&& isset($_POST["destination"]))
{
travelcost($_POST['start'], $_POST['destination']);
}
?>

这给了我未定义的索引:启动[]

我知道我做错了,但我就是看不到函数和数组中的逻辑。我认为这个函数是正确的,因为它已经出书了,但我也不确定。

有人能帮我吗?

这是错误的,

<option value="start[]">Amsterdam</option>
              ^      ^

应该是

<option value="start">Amsterdam</option>

<option value="Amsterdam">Amsterdam</option>

起点和终点的所有选项都相同。

根据您的函数"travelcost()",您的选择应该是

Start: <select name="start" value="true">
    <option value="1">Amsterdam</option>
    <option value="1">Utrecht</option>
    <option value="1">Den Haag</option>
    <option value="1">Rotterdam</option>
</select>
Destination: <select name="destination" value="true">
    <option value="1">Amsterdam</option>
    <option value="2">Utrecht</option>
    <option value="3">Den Haag</option>
    <option value="4">Rotterdam</option>
</select>