2012-09-07 63 views
-1

您好我有一些简单的代码在这里,至于我可以告诉应该是工作,但它没有,我很不解,为什么设置和打印出数组变量

//VARIABLES 
$rowcount=15; 
$colcount=15; 
$path= array(array()); 
$startrow=8; 
$startcol=7; 
$row=$startrow; 
$col=$startcol; 

for ($a=0;$a<$rowcount;$a++) { 
    for ($b=0;$b<$colcount;$b++) { 
     $path[$a][$b]=0; 
    } 
} 

echo"In case one "; 
echo"<BR>"; 
echo " Col= ".$col; 
echo " Row= ".$row-1; 
echo " Col= ".$col; 
echo " Cell= ".$path[$row-1][$col]; 
echo " Cellx= ".$path[7][7]; 
if($path[$row-1][$col]=="o") { 
    echo " F1 = ".$flagOne; 
     $flagOne="1"; 
     echo " cell equals ==o=="; 
     echo " F1 = ".$flagOne; 
} else { 
    echo " cell not equal ==o=="; 
} 
echo"<BR>"; 

这是什么我得到的输出

如果一个

列= 7-1列= 7细胞= 0 Cellx = 0 F1 = 0细胞等于== ==ØF1 = 1

令我百思不解是第七点“-1” 我希望看到“行= 7”不是“-1”,因为$ row = 8

我一直在java和C编程,最近刚刚触摸PHP最近,但我一直在PHP多年,我认为这应该是工作

我在做什么错

由于看if语句的阵列/单元格的值= 0,所以我也希望评价是假的另一个问题 和呼应这个

cell not equal == o ==

但为什么这 我的一个思想状况评估真正为我设立$ PATH变量

我只是希望它是一个简单的二维数组$ PATH [$一] [$ B的方式]它是正确的,当我输出数组我正在期待一个二维数组。

从来没有做这些多过去

回答

1
$rowcount=15; 
$colcount=15; 
$path= array(array()); 
$startrow=8; 
$startcol=7; 
$row=$startrow; 
$col=$startcol; 

for ($a=0;$a<$rowcount;$a++) { 
    for ($b=0;$b<$colcount;$b++) { 
     $path[$a][$b]=0; 
    } 
} 

echo"In case one "; 
echo"<BR>"; 
echo " Col= ".$col; 
echo " Row= ".($row-1); 
echo " Col= ".$col; 
echo " Cell= ".$path[$row-1][$col]; 
echo " Cellx= ".$path[7][7]; 
if($path[$row-1][$col]==0) { 
    echo " F1 = ".$flagOne; 
     $flagOne="1"; 
     echo " cell equals ==0=="; 
     echo " F1 = ".$flagOne; 
} else { 
    echo " cell not equal ==0=="; 
} 
echo"<BR>"; 

首先,不使用双引号遍布脚本。在PHP中使用双引号和单引号有特殊意义,请阅读有关此手册。第二个字符“o”不是零。您可以清楚地看到,您正试图将零与小写“o”匹配。而且,整数不需要像PHP中的每种语言那样引用。检查您的字体设置以区别对方。第三 - 如果你在PHP中进行评估和连接,你应该在评估语句中用括号括起来,尽管这是一种不好的做法。预先计算值并在将它们发送到输出之前或在将它们与另一个值连接成字符串之前将它们分配给值会更好。

+0

我实际上正在尝试使用小写字母o在实际输出区域中,我比较了显示时零和字母o的外观。这段代码实际上来自一个case语句,该语句为字母o交换零。 (我像使用地图一样使用数组。)在连接时,我不知道评估之外的Parens。 –