wordpress проверить, существует ли значение в массиве

109
9

Я пытаюсь сравнить одно поле ввода, которое я получаю из формы отправки, Но даже если число верно, оно не будет эхом удачи.

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

спросил(а) 2021-01-19T18:20:26+03:00 6 месяцев, 1 неделя назад
1
Решение
63

Проверьте 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";
}

ответил(а) 2021-01-19T18:20:26+03:00 6 месяцев, 1 неделя назад
64

вы можете использовать функцию 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";
}

ответил(а) 2021-01-19T18:20:26+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема