背景:
我正在创建一种从一个表中提取信息的方法,检查它是否存在于第二个表中,如果不存在则插入信息。在比较数据时,首先要检查姓名是否匹配,然后再检查帐号是否与对应的姓名相符。此代码有大量注释,因此也可以遵循逐步过程。我非常感谢 stackexchange 的大师们提供的所有帮助,所以在摸索了一会儿之后,我把我的问题提出来了。
显然,即使存在匹配的名称,我的代码在检查帐号时也会中断。根据我最好的技能,所有代码都应该可以完美运行。
通过 all_validation_names 的 print_f 以及 all_validation_accounts 可以看到,第一个通过语句的信息包含在带有检查的数组中。
我的问题如下:为什么不能将存储在具有相应键($check_account_number)的数组中的varchar变量传递给in_array。该函数总是返回 else,尽管变量为“1”,但使用 $all_validation_accounts 中的相应键找不到它。
请帮忙!
脚本处理代码
if (in_array($check_agency_name,$all_validation_names))
{
//Set a marker for the key index on which row the name was found
$array_key= array_search($check_agency_name, $all_validation_names);
//Now check if the account corresponds to the right account name
if (in_array($check_account_number,$all_validation_accounts["$array_key"]))
//NOTE: i've even tried strict comparison using third parameter true
{
//Bounce Them If the Account Matches with a name So theres no duplicate entry (works)
}
//If the account doesn't correspond to the right account name, enter the information
else
//ALSO DOESNT WORK: if (!(in_array($check_account_number,$all_validation_accounts["$array_key"])))
{
// The account doesn't exist for the name, so enter the information
//CODE TO ENTER INFORMATION THEN BOUNCE (works)
break;
}
}
输出:
传递名称以匹配:a 和帐户:1
存在帐户,因此所有验证数组如下: all_validation_names: Array ( [0] => a [1] => a [2] => b )
所有验证帐户:数组( [0] => 1 [1] => 2 [2] => 2 )
系统在数组 all_validation_names 中找到了 check_agency_name,所以让我们用这个键检查帐号:0
账户名存在,但系统没有找到账号匹配,所以必须输入,就好像该账户从未存在过一样
以下是应输入的信息:used_selector:0 Agency_name:A address: city: state: zip: account_number: 1
现在系统应该输入信息,并将客户端弹回