Php 比较两个数组后添加到整数变量
我对php相当陌生。每次循环此数组时,我都会尝试更新分数。只有当用户选择了列表框的第一个值时,我的代码才起作用,如果没有选择,它会给出一个零。请帮忙。 这是A.phpPhp 比较两个数组后添加到整数变量,php,arrays,loops,listbox,Php,Arrays,Loops,Listbox,我对php相当陌生。每次循环此数组时,我都会尝试更新分数。只有当用户选择了列表框的第一个值时,我的代码才起作用,如果没有选择,它会给出一个零。请帮忙。 这是A.php { $SkillsArray = array(); $Score=0; $SkillsArray = $_POST['DutiesDesc']; //foreach($SkillsArray as $key =>$value ) { $Sentence = $Skill
{
$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 />
{
$SkillsArray=array();
$Score=0;
$SkillsArray=$_POST['DutiesDesc'];
//foreach($SkillsArray作为$key=>$value)
{
$SECTION=$SkillsArray[0]。$SkillsArray[1]。$SkillsArray[2]。$SkillsArray[3]。$SkillsArray[4]。$SkillsArray[5]。$SkillsArray[6]。$SkillsArray[7]。$SkillsArray[8]。$SkillsArray[9]。$SkillsArray[10];
}
//获得申请者的分数
对于($i=0;$i
职位描述
对于($i=0;$i数组中的值$SkillsArray
与您的$Text
数组没有相同的索引。如果您在列表中选择第三项(假设值为“c”)和第五项(例如“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];
}
}
}
if(is_数组($SkillsArray)){
对于($i=0;$i
请记住检查,$SkillsArray
是否确实是一个数组。如果用户没有检查任何技能,函数array\u search
将为每个项目返回false
,这将导致最高分数
函数的文档:,
选项值是什么?数字还是文本?$Arow[]
是否包含与$Text[]
相同的值?您也可以尝试通过print\r($SkillsArray)调试代码;
在A.php中查找此变量的确切内容,并帮助您理解为什么有些事情不能按预期工作。如果我的假设正确,您的代码可能非常正确。嗨,Peter.SkillsArray包含文本。选项值是从数据库检索的文本。是的,$Arow[]和$Text[]包含相同的数据(文本)。当我选择除$Arow['TextF1']之外的所有其他选项时,$Score变量不会更新。这就像它不会进入for循环一样。但是如果我选择包括$Arow['TextF1']的选项,效果会很好。谢谢Peter。你真的很有帮助
if (is_array($SkillsArray)) {
for($i = 0; $i < count($Text); $i++) {
if (array_search($Text[$i], $SkillsArray) !== false) {
$Score += $Val[$i];
}
}
}