所有
试图解决这个问题一段时间没有任何进展......任何反馈都非常受欢迎。
我们根据用户来电显示和YoB使用简单的身份验证 - 如果他有独特的YoB,他可以访问该服务,如果该呼叫者ID下的另一个用户具有相同的YoB:他收到一条消息,表明需要其他信息
函数的目标是返回匹配用户的记录 - 此时,它始终返回最后一条记录。
PHP代码:
// $response -> XML record with firstName, lastName and dob (dd/mm/yyyy)
// $yob -> YoB user has entered for authentication
function parseResponseYOB($response, $yob)
{
$duplicates = 0; // If there are users with same YoB, display message that additional info is required
if(empty($response->CallerMembers->CallerMemberDetails->dob))
{
$iterateArr = $response->CallerMembers->CallerMemberDetails;
}else{
$iterateArr[] = $response->CallerMembers->CallerMemberDetails;
}
foreach($iterateArr as $result)
{
$parseResult['firstName'] = $result->firstName;
$parseResult['lastName'] = $result->lastName;
$parseResult['yob'] = substr($result->dob, -4);
if($parseResult['yob'] == $yob)
{
$duplicates++;
}else{
continue;
}
}
// Check for duplicate YoBs
if($duplicates > 1)
{
return "Multiple members with the same YOB";
}elseif($duplicates < 1){
return "No members with the specified YOB found";
}
return $parseResult; // No duplicates, return the record of the matching user
// PROBLEM: Always the last record is returned... not the one with matching YOB?
}
}
答案 0 :(得分:0)
那是因为那正是你告诉它要做的。您目前正在将每个结果写入$parseResult
- 并覆盖过程中的最后结果 - 然后您甚至会检查它是否是正确的结果。您还在return
循环内进行foreach
调用(以及检查),这将在第一次迭代后实际终止循环。你想要的可能更像是这样:
function something ($arg1, $arg2) {
$parseResult;
//...
foreach ($iterateArr as $result) {
if (substr($result->dob, -4) == $yob) {
$parseResult['firstName'] = $result->firstName;
$parseResult['lastName'] = $result->lastName;
$parseResult['yob'] = substr($result->dob, -4);
$duplicates++;
}
}
// Check for duplicate YoBs
if($duplicates > 1)
{
return "Multiple members with the same YOB";
}elseif($duplicates < 1){
return "No members with the specified YOB found";
}
return $parseResult; // No duplicates, return the record of the matching user
}
答案 1 :(得分:0)
您的return
声明位于foreach
块内。基本上,foreach
循环将运行一次,并在parseResult
后立即输出$parseResult['yob'] == $yob
。我想你可能在检查重复yobs
之前忘记了一个结束括号。希望这会有所帮助。