我尝试比较 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', $answerid)