Я пытаюсь сравнить 2 массива. 1 из input :: get и 1 из построителя запросов. Вот мой код:
for ($k = 0; $k < $count; $k++)
{
$answer[] = Input::get('radio'.$k);
$answerid[] = Input::get('input'.$k);
$numberchoice[] = DB::table('numbers')->whereIn('questionid', array($answerid))->pluck('status');
if ($answer == $numberchoice)
{
$result[] = "1";
}
else
{
$result[] = "0";
}
}
var_dump($answer); echo "<br>";
var_dump($answerid); echo "<br>";
var_dump($numberchoice); echo "<br>";
$result = implode("%", $result);
var_dump($result); echo "<br>";
die();
Я пытаюсь vardump каждый массив, чтобы увидеть, что я получил. Я думаю, проблема в $ numberchoice, она не возвращает мне ничего. Хотя $ answer и $ answerid верны.
array(5) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "0" [4]=> string(1) "1" }
array(5) { [0]=> string(1) "3" [1]=> string(1) "6" [2]=> string(1) "8" [3]=> string(1) "1" [4]=> string(1) "2" }
array(5) { [0]=> int(1) [1]=> NULL [2]=> NULL [3]=> NULL [4]=> NULL }
string(9) "1%0%0%0%0"
Пожалуйста помоги. Благодарю.
Из того, что я вижу, $answerid
уже является массивом. Но когда вы вызываете ->whereIn('questionid', array($answerid))
вы ->whereIn('questionid', array($answerid))
существующий массив в другой. Правильный whereIn вызов будет ->whereIn('questionid', $answerid)