Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比较两个数组后添加到整数变量_Php_Arrays_Loops_Listbox - Fatal编程技术网

Php 比较两个数组后添加到整数变量

Php 比较两个数组后添加到整数变量,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

我对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:&nbsp;</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];
    }
  }
}