[英]nested foreach loop, with php and laravel
我的嵌套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;
好吧,我會這樣做的。
首先給變量名稱,以幫助您了解其中的內容
其次總是使用{}
中if else
即使只有一個行if
還是else
,這使得它更容易看到的東西居然開始和結束。
然后始終也使用縮進,以便您可以直觀地看到代碼塊的開始和結束位置。 請記住,您可能必須在編寫代碼幾周后才返回一段代碼,因此,由於您必須弄清自己所做的事情,因此使其易於閱讀。
同樣,當您輸出有關什么匹配或不匹配的信息時,還包括您需要查看的數據,以表明匹配正確。 然后,如果它不能完全滿足您的要求,則可以輕松地了解出了什么問題。
$temp_answers = array();
$questions = array();
$temp_answers = Tempanswer::where('subject_id', $subject_id)
->where('student_id', $student_id)
->lists('temp_answer');
$questions = Question::where('subject_slug', $subject->slug)
->lists('letteranswer');
foreach ($temp_answers as $temp_answer) {
foreach ($questions as $question ) {
if($question == $temp_answer){
echo "Question = $question TempAnswer = $temp_answer > MATCH" . PHP_EOL;
} else {
echo "Question = $question TempAnswer = $temp_answer > MISMATCH" . PHP_EOL;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.