luona
2015-11-09 18:29
<?php
$maxLine = 4; //每排人数
$no = 17;//学生编号
$line =ceil($no/$maxLine);
$row = $no%$maxLine?no%$maxLine:$maxLine;
echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
?>
给@Perona点个赞 本来不会的看评论会了 啊啊哈
$maxLine = 4; //每排人数 $no = 17;//学生编号
这2行分别定义变量$maxLine 和变量$no ,并且赋值。
$line =ceil($no/$maxLine);
这一行定义变量$line,赋值为$no(学生编号)除以$maxLine(每排人数)的结果向上取整ceil。为什么要向上取整。一排是4位,那么编号5~8是不是都在2排。如:5/4,结果为1.25。那么向上取整是1。这个变量其实存的就是排号数。
这里要明白ceil() 函数。
ceil() 函数向上舍入为最接近的整数。注意不是四舍五入。
如:
<?php echo(ceil(0.6);//输出结果是1 echo(ceil(0.4);//输出结果是1 ?>
$row = $no%$maxLine?no%$maxLine:$maxLine;
这里用的是三目运算符,又称为三元运算符。
语法:条件 ? 结果1 : 结果2
?前面是条件,如果条件为真,那么返回结果1,否则返回结果2。
这里定义的变量$row存储的值是列数。这里如果$no%$maxLine成立(%是取模的意思,即求余数。),如果成立,返回no%$maxLine,否则返回$maxLine。
即学生编号除以每排人数有余数,返回余数,否则返回每排人数。
为什么要这样捏?假如学生编号16,16除以4是没有余数,那么是不是就是在第4列(跟每排人数刚好一样)。
需要知道的一点,取模运算中,如果被模数不够取模,是直接返回被模数。如:3%4,返回的是3。
echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
这一句就不用解释了吧,就是输出语句而已。
PHP入门篇
456328 学习 · 6589 问题
相似问题