2015-11-21 3 views
2

Я получаю информацию в этой форме правильно.Как сравнить значение в двумерном массиве Laravel

$findNIF = User::where('nif','=',$nif)->get(); 
$findEmail = User::where('email','=',$email)->get(); 

Мне нужно сравнить, если это одно и то же значение по "nif" и "email" из $findNIF и $findEmail.

$findNIF["0"]["nif"]; 
$findNIF["0"]["email"]; 
$findEmail["0"]["nif"]; 
$findEmail["0"]["email"]; 

Я использую следующее предложение, но я всегда получаю "OK"

if ($findNIF["0"]["nif"] && $findNIF["0"]["email"] && $findEmail["0"]["nif"] && $findEmail["0"]["email"]){ 
    echo "OK"; 
} else { 
    echo "NO"; 
} 
+0

Попробуйте использовать 'isset' или' empty' для значений массива 'isset ($ findNIF [" 0 "] [" nif "])' Также вы можете изменить запрос lik так: 'User :: where ('nif', '=', $ nif) -> где ('email', '=', $ email) -> get(); ' ' $ findNIF ["0"] ["nif"]; 'try для изменения в '$ findNIF-> nif' или если вы хотите использовать данные в качестве массива add после' get() '' -> toArray() 'и использовать как' $ findNIF ["nif"]; ' – Froxz

ответ

0

Здесь

if ($findNIF["0"]["nif"] && $findNIF["0"]["email"] && $findEmail["0"]["nif"] && $findEmail["0"]["email"]){ 
    echo "OK"; 
} else { 
    echo "NO"; 
} 

в вашем состоянии, если вы получаете значения в обоих ваших $findNIF и $findEmail переменные, то он всегда возвращает true.

Если вы хотите сравнить nif из $findNIF & $findEmail и email из $findNIF & $findEmail как тогда это было бы как этот

if (($findNIF["0"]["nif"] == $findEmail["0"]["nif"]) && ($findNIF["0"]["email"] == $findEmail["0"]["email"])){ 
    echo "OK"; 
} else { 
    echo "NO"; 
} 

Просьба уточнить больше о том, что вам нужно.

Смежные вопросы