[英]how can i foreach data from two tables laravel
public function queries($companyID, $entityType, $entityValue)
{
$data = [];
$details = DiraQuestion::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
$detailsAns = DiraResponses::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
foreach($details as $key => $detailsValue)
{
if(!array_key_exists($detailsValue->intent, $data))
{
$data[$detailsValue->intent] = [];
}
if(!array_key_exists($detailsValue->reply, $data[$detailsValue->intent]))
{
$data[$detailsValue->intent]['answer'][$detailsValue->reply] = $detailsValue->id;
}
if(!array_key_exists($detailsValue->queries, $data[$detailsValue->intent]))
{
$data[$detailsValue->intent]['question'][$detailsValue->queries] = $detailsValue->id;
}
}
ksort($data);
return view('AltHr.Chatbot.queries', compact('data','entityType','entityValue','companyID'));
}
I have written a code to view data but I'm having some problems. 我已经编写了用于查看数据的代码,但是遇到了一些问题。
From the code I wrote it's viewing the data from one table which is the $details
. 根据我编写的代码,它正在查看一个表中的数据,即$details
。 But I also wanna view the data from the $detailsAns
. 但我也想从$detailsAns
查看数据。
How can I do that? 我怎样才能做到这一点? also can I foreach
two data from that two tables? 我还能从这两个表中foreach
两个数据吗?
The first way use normal for
instead of a foreach
, 第一种方法使用normal for
代替foreach
,
For Exmple: 例如:
public function test(){
$data = [];
$details = ["details0", "details1", "details2", "details3", "details4", "details5", "details6", "details7"];
$detailsAns = ["details0Ans", "details1Ans", "details2Ans", "details3Ans", "details4Ans", "details5Ans", "details6Ans", "details7Ans"];
for ($i = 0 ; $i < sizeof($details) || $i < sizeof($detailsAns) ;$i++) {
echo $details[$i];
echo $detailsAns[$i];
}
}
Second way use MultipleIterator::attachIterator
第二种方式使用MultipleIterator::attachIterator
Not the most efficient, but a demonstration of SPL's multipleIterator 不是最高效的,而是SPL的multipleIterator的演示
$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($a));
$mi->attachIterator(new ArrayIterator($b));
$newArray = array();
foreach ( $mi as $value ) {
list($value1, $value2) = $value;
echo $value1 , '-' , $value2 , PHP_EOL;
}
public function queries($companyID, $entityType, $entityValue) { $data = []; $details = DiraQuestion::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get(); $detailsAns = DiraResponses::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get(); $mi = new MultipleIterator(); $mi->attachIterator(new ArrayIterator($details)); $mi->attachIterator(new ArrayIterator($detailsAns)); foreach($mi as $value ) { list($detailsValue, $detailAnsValue) = $value; if(!array_key_exists($detailsValue->intent, $data)) { $data[$detailsValue->intent] = []; } if(!array_key_exists($detailsValue->reply, $data[$detailsValue->intent])) { $data[$detailsValue->intent]['answer'][$detailsValue->reply] = $detailsValue->id; } if(!array_key_exists($detailsValue->queries, $data[$detailsValue->intent])) { $data[$detailsValue->intent]['question'][$detailsValue->queries] = $detailsValue->id; } } ksort($data); return view('AltHr.Chatbot.queries', compact('data','entityType','entityValue','companyID')); }
Example: 例:
public function test(){
$data = [];
$details = ["details0", "details1", "details2", "details3", "details4", "details5", "details6", "details7"];
$detailsAns = ["details0Ans", "details1Ans", "details2Ans", "details3Ans", "details4Ans", "details5Ans", "details6Ans", "details7Ans"];
$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($details));
$mi->attachIterator(new ArrayIterator($detailsAns));
foreach($mi as $value ) {
list($detailsValue, $detailAnsValue) = $value;
echo($detailsValue);
echo($detailAnsValue);
}
}
//output: details0details0Ansdetails1details1Ansdetails2details2Ansdetails3details3Ansdetails4details4Ansdetails5details5Ansdetails6details6Ansdetails7details7Ans
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.