我正在尝试比较我从提交表单获得的一个输入字段,但即使数字是正确的,它也不会成功。
global $wpdb;
$name = $_POST['name'];
$phone = $_POST['surname'];
$kunde = $_POST['kunde'];
$login = $wpdb->get_results( "SELECT kunde FROM wp_kundenumber", ARRAY_N );
$kunde_string = end(explode(' ', $kunde));
if(in_array($kunde_string, $login)){
echo "succes";
}
else {
echo "failure";
}
编辑:这些是变量的var转储:
代表kunde_string
,string(6) "100001"
和$login
是一个大数组array(9807) { [0]=> array(1) { [0]=> string(6) "100001" } [1]=> array(1) { [0]=> string(6) "100002" } [2]=> array(1) { [0]=> string(6) "100003" }...
答案 0 :(得分:1)
使用in_array
foreach
尝试以下
global $wpdb;
$name = $_POST['name'];
$phone = $_POST['surname'];
$kunde = $_POST['kunde'];
$login = $wpdb->get_results( "SELECT kunde FROM wp_kundenumber", ARRAY_N );
$kunde_string = end(explode(' ', $kunde));
$flag = false;
foreach($login as $value)
{
if(in_array($kunde_string, $value, true))
{
$flag = true;
}
}
if($flag == true){
echo "succes";
}else {
echo "failure";
}
答案 1 :(得分:1)
您可以使用array_map
php函数代替foreach循环,然后使用in_array
查找值..
$login = $wpdb->get_results( "SELECT kunde FROM wp_kundenumber", ARRAY_N );
$dataArray = array_map(function ($arr) {return $arr[0];}, $login); //will return single dimentional array of value at 0 index in $login items
if(in_array($kunde_string, $dataArray)) ///then in_array will work for you.. to find $kunde_string
{
echo "Succes";
}
else
{
echo "Failure";
}