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";
}
EDIT: это var dumps переменных:
для 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" }...
Проверьте 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";
}
вы можете использовать функцию 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";
}