PHP语法使用通用值而不是硬编码的行号

时间:2019-04-03 11:38:00

标签: php

我有一个php函数,允许用户在所有8个模块完成后生成PDF证书。

sequelize.define('Model', {attrs}, {validate: false})

$ sname ['8']指的是实际的表行,即DB中包含以下行:1,2,3,4,5,6,7,8,每个行都为'Yes'或'否'表示是否通过。

但是我要添加一门新课程,只需6个模块即可完成。我可以在以下变量中获取完成所需模块数量的适当值:

<?php  if($sname['8']=="Yes"){  ?>
//show button to create PDF
<?php } ?>

根据课程可能是8或6。因此,我需要更改以下内容,以使用$ courseDetails ['modules']代替硬编码的'8',但我不理解实现此目的的语法。

例如

echo  $courseDetails['modules'];  //could be 8 or 6

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我建议您使用数字数组而不是当前的关联版本。当前,您使用字符串键(值'1''2''3' ..)。尽管可以使用关联数组,但使用数字数组将简化确定数组长度和处理其单个元素的任务。

为了找出可以通过多少标准

$criteria=array('No','No','No','No','No','No'); // define the criteria
// Now, check how many elements there are:
$critcount=count($criteria) // = 6

但是,您需要知道数组中的第一个元素具有索引0而不是1,因此要检查第六个元素,您可以这样做:

$num=6;
if(criteria[$num-1]=="Yes"){  /* do something */ }