简体   繁体   English

我如何从两个表中获取数据

[英]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.

相关问题 如何使用两个表从同一数据库中获取数据 - how to foreach data from same database with two tables laravel 用两个表中的数据进行Foreach Laravel - Foreach with data from two tables laravel 如何在laravel中同时保存两个表中的数据? - How I can save data in two tables simultaneously in laravel? 我如何从Laravel 5.6的两个表“ incoming_calls”和“ outgoing_calls”表中选择所有数据 - How can i select all the data from the two tables “incoming_calls” and the “outgoing_calls” tables in Laravel 5.6 在Laravel中,如何从3个表的一个查询中获取数据 - In laravel how can i get data in one query from 3 tables 如何使用 AJAX 和 Laravel 显示 2 个表中的数据? - How can I show data from 2 tables using AJAX and Laravel? 我如何从Laravel中的多个相关表中获取数据 - how can I get data from multiple related tables in Laravel 我如何在laravel的不同表中对两列中的两个数据求和 - how can i sum two data in two columns in different tables in laravel 如何从Mysql和Codeigniter中的两个表中获取数据 - How can I get data from two tables in Mysql and Codeigniter 如何使用laravel中的Maatwebsite包连接两个表并通过excel导入数据? - How can I join two tables and import the data by excel using Maatwebsite package in laravel?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM