我对php很新。我每次循环遍历此数组时都会尝试更新分数。我的代码只有在用户选择了列表框的第一个值时才有效,如果没有选择则给出零。请帮忙。 这是A.php
{
$SkillsArray = array();
$Score=0;
$SkillsArray = $_POST['DutiesDesc'];
//foreach($SkillsArray as $key =>$value )
{
$Sentence = $SkillsArray[0]." ".$SkillsArray[1]." ".$SkillsArray[2]." ".$SkillsArray[3]." ".$SkillsArray[4]." ".$SkillsArray[5]." ".$SkillsArray[6]." ".$SkillsArray[7 ]." ".$SkillsArray[8]." ".$SkillsArray[9]." ".$SkillsArray[10];
}
//Get the applicants score
for($i=0;$i<11;$i++)
{
if ($SkillsArray[$i] == $Text[$i])
{
$Score = $Score+$Val[$i];
}
}
} //**** The following is the HTML part of the code(form)
<form action = "A.php" method ="POST" enctype="multipart/form-data">
<label for="Position">Position:</label><input type="type" name="Position" size="35" /><br />
</p>
<p>
<!-- <label for="DutiesDesc">Duties Description: </label><textarea name="DutiesDesc" cols="30" rows="5" /></textarea>--> <br />
Job Description
<select name="DutiesDesc[]" size=5 multiple="multiple">
<option value="<?php echo $Arow['TextF1']?>"><?php echo $Arow['TextF1']?></option>
<option value="<?php echo $Arow['TextF2']?>"><?php echo $Arow['TextF2']?></option>
<option value="<?php echo $Arow['TextF3']?>"><?php echo $Arow['TextF3']?></option>
<option value="<?php echo $Arow['TextF4']?>"><?php echo $Arow['TextF4']?></option>
<option value="<?php echo $Arow['TextF5']?>"><?php echo $Arow['TextF5']?></option>
<option value="<?php echo $Arow['TextF6']?>"><?php echo $Arow['TextF6']?></option>
<option value="<?php echo $Arow['TextF7']?>"><?php echo $Arow['TextF7']?></option>
<option value="<?php echo $Arow['TextF8']?>"><?php echo $Arow['TextF8']?></option>
<option value="<?php echo $Arow['TextF9']?>"><?php echo $Arow['TextF9']?></option>
<option value="<?php echo $Arow['TextF10']?>"><?php echo $Arow['TextF10']?></option>
<option value="<?php echo $Arow['TextF11']?>"><?php echo $Arow['TextF11']?></option>
</select><br />
答案 0 :(得分:0)
for($i=0;$i<11;$i++)
{
for($j=0;$j<11;$j++)
{
if (($SkillsArray[$i] == $Text[$j]))
{
$Score = $Score+$Val[$j];
}
}
这需要第二个循环才能正常工作:)
答案 1 :(得分:0)
数组$SkillsArray
中的值与$Text
数组的索引不同。如果您在列表中选择第3个(比如值为“c”)和第5个(例如“e”)项,则数组$SkillsArray
将包含以下内容:
$SkillsArray[0] = "c";
$SkillsArray[1] = "e";
因此,您需要对$SkillsArray
进行简单搜索,因为您不能依赖于符合$Text
数组的索引。
if (is_array($SkillsArray)) {
for($i = 0; $i < count($Text); $i++) {
if (array_search($Text[$i], $SkillsArray) !== false) {
$Score += $Val[$i];
}
}
}
如果$SkillsArray
确实是一个数组,请务必检查。如果用户未检查任何技能,则array_search
功能将为每个项目返回false
,这将获得最高分数。
功能文档:count,array_search,is_array