wordpress检查数组中是否存在值

时间:2016-06-14 05:22:00

标签: php wordpress

我正在尝试比较我从提交表单获得的一个输入字段,但即使数字是正确的,它也不会成功。

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_stringstring(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" }...

2 个答案:

答案 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";
}