我有一个嵌套循环,其中外部循环从数组中获取一个项目,然后内部循环在不同数组的每个项目上运行一个函数。问题在于,在这些循环中,函数会为两个参数返回不同的值,但是如果我只是通过将其打印到屏幕上来复制这些值,然后在文件上单独复制,则会返回不同的结果。
我尝试打印循环的每个迭代,并在字符串中回显函数调用,并以参数作为要打印的变量,然后按如下所示运行函数:
echo "str_accur($dbBookTitle[$i], {$bookDataInfo[$j][0]}, false): ";
echo str_accur($dbBookTitle[$i], $bookDataInfo[$j][0], false);
在循环内部,它显示了不同的结果:
str_accur(网络物理系统,ASIPDes的ApplicationAnalysisTools,false):21
您会看到21是该函数的结果,然后我将复制该函数并像这样单独尝试
echo str_accur("Cyber-Physical Systems", "ApplicationAnalysisToolsforASIPDes", false);
使用相同的参数将返回9,这是我期望的,但是为什么在循环中它显示21却超出了我的范围。
这是循环:
for($i = 1;$i < $dbDataLen;$i++){
echo "from database index ({$i}): " . $dbBookTitle[$i];
for($j = 0;$j < $bdiL;$j++){
if($bookDataInfo[$j][0] == "False"){
$class = 'w3-red';
}else{
$class = 'w3-green';
}
echo "<p class='$class'>bookDataInfo index ($j) : {$bookDataInfo[$j][0]}</p>";
echo "str_accur($dbBookTitle[$i], {$bookDataInfo[$j][0]}, false): ";
echo str_accur($dbBookTitle[$i], $bookDataInfo[$j][0], false);
echo "<hr>";
}
}
str_accur的实际数据和源代码很大,因此我不知道是否应该在此处显示它,但为了以防万一,我将其放在了GitHub上。 https://github.com/siyaddigital/phpFuncProblem
答案 0 :(得分:0)
结果是空白导致功能输出大量改变,我需要修剪参数,并且浏览器在打印之前默认已经修剪了值:
str_accur(trim($trgStr), trim($mtchTo), false);