我的嵌套foreach循环有问题,我的控制器代码检索数据库中单独表中两列的值。
我想要的是将每个值与另一个表进行比较,反之亦然,...
table1 table2
some column1 some column2
a b
b b
c c
我想要的输出将是两列的值是否比较,如果为true,则输出“ match”,否则输出“ mismatch”。
在此尝试,但不起作用,仅对两个表列中的最后一项进行比较。我想我的嵌套循环不见了。
///摘要///
控制者
$temp_answers = array();
$answers = array();
$temp_answers = Tempanswer::where('subject_id', $subject_id)
->where('student_id', $student_id)
->lists('temp_answer');
$answers = Question::where('subject_slug', $subject->slug)
->lists('letteranswer');
foreach ($temp_answers as $temp_answer) {
foreach ($answers as $answer) {
if($answer == $temp_answer){
$flag = 'match';
}else
$flag = 'mismatch';
}
echo $flag.' ';
}
最佳答案
CMIIW。
您要检查table1和table2是否匹配。因此,如果不匹配,您将收到消息“不匹配”
假设1:是否将表1中的每个数据与表2中的所有数据进行比较。
foreach ($temp_answers as $temp_answer) {
foreach ($answers as $answer) {
if($answer == $temp_answer){
$flag = 'match';
}else {
$flag = 'mismatch';
break;
}
}
if($flag == 'mismatch'){
break;
}
}
echo $flag;
假设2:每行比较每个表。我的意思是将row1 table1与row1 table2比较,然后将row2 table1与row2 table2比较。
$flag='';
foreach ($temp_answers as $key1=>$temp_answer) {
foreach ($answers as $key2=>$answer) {
if($key1 == $key2){
if($answer == $temp_answer){
$flag = $flag.'match ';
}else {
$flag = $flag.'mismatch ';
}
break;
}
}
}
echo $flag;
关于php - 嵌套的foreach循环,带有php和laravel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32287577/