我有一个功能:
function getDecision($num_players, $decisionType, $stage){
echo "in the function 1: ".$num_players."<br/>";
echo "in the function 2: ".$decisionType."<br/>";
echo "in the function 3: ".$stage."<br/>";
$x = mysql_query("
SELECT `decisionValue` FROM `teamdecision` WHERE `decisionType` = '$decisionType' && `period`= '$stage'
")or die($x."<br/><br/>".mysql_error());
$y = array();
$i="0";
while ($i<($num_players) && $row = mysql_fetch_assoc($x))
{
$y[$i] = $row['decisionValue'];
$i++;
}
return ($y);
}
Y将根据$num_players
填充多个值。我按如下方式调用函数:
$value = array();
$name = array();
for ($j=0;$j<$num_players;$j++){
for ($i=0;$i<4;$i++){
$name[0] = "SUconsultant";
$name[1] = "marketT";
$name[2] = "sector";
$name[3] = "saleprice";
echo $name[$i]."<br/>";
$value[$i] = getDecision($num_players, $name[$i], $currentStage)."<br/>";
echo "Value = ".$value[$j][$i]."<br/>";
}
}
正如你所看到我做错了。我需要输出$value
中的数据但是我对多维数组的工作方式感到困惑。我知道我需要阅读这个主题,如果可能的话,你能指出我一个合适的学习资源吗?
所以我更改了代码,以便以下内容用于生成以下输出:
$value = array();
$name = array();
for ($j=0;$j<$num_players;$j++){
for ($i=0;$i<4;$i++){
$name[0] = "SUconsultant";
$name[1] = "marketT";
$name[2] = "sector";
$name[3] = "saleprice";
echo $name[$i]."<br/>";
$value[$i] = getDecision($num_players, $name[$i], $currentStage)."<br/>";
echo "Value = ".$value[$j][$i]."<br/>";
}
}
我希望输出如下:
$value[0]
应该包含$ y,然后包含每个SUconsultant值。 $value[1]
应该包含$ y,然后包含每个marketT值,依此类推。
答案 0 :(得分:1)
您的第一个for循环中有一个$j
,但在其中设置并加入$i
。也许可以将它们更改为$j
。
修改强>
实际上看起来您在返回数据的位置存在问题:
echo "Value = ".$value[$j][$i]."<br/>";
这应该是(看来):
for ($f = 0; $f < $num_players; $f++){
echo "Value = ".$value[$i][$f]."<br/>";
}
由于当你到达这一点时你目前在$value[$i]
,所以你需要它为每个玩家回应一个。
答案 1 :(得分:1)
for ($i=0;$j<4;$i++){
应该是
for ($j=0;$j<4;$j++){
并且
$value[$i] = getDecision($num_players, $name[$i], $currentStage)."<br/>";
应该是
$value[$j] = getDecision($num_players, $name[$j], $currentStage)."<br/>";
答案 2 :(得分:1)
这个解决方案很有效,经过大量的游戏之后似乎只有[]
之后
还需要value
数组吗?至少我是这么认为的
$value = array();
$name = array();
for ($j=0;$j<$num_players;$j++){
for ($i=0;$i<4;$i++){
$name[0] = "SUconsultant";
$name[1] = "marketT";
$name[2] = "sector";
$name[3] = "saleprice";
echo $name[$i]."<br/>";
$value[] = getDecision($num_players, $name[$i], $currentStage);
//echo "Value = ".$value[$i]."<br/>";
echo "<br/><hr/>";
echo "Value = ".$value[$i][$j]."<br/><hr/>";
}
}
输出:
现在我改为:
$value[] = getDecision($num_players, $name[$i], $currentStage);
echo "Team ".$j." ".$name[$i]." = ".$value[$i][$j]."<br/>";
为了实现我的最终目标: