首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel合并阵列

Laravel合并阵列
EN

Stack Overflow用户
提问于 2019-12-17 07:51:51
回答 2查看 89关注 0票数 4

我有数组,它具有以下值

代码语言:javascript
复制
$_logfields=["_id", "time2", "logtype", "SourceZone", "SourceIP", "DestinationIP", "Protocol", "SendBytes", "RcvPkts"];

我想从数据库中选择字段

代码语言:javascript
复制
$datas = Logss::select ("_id", "time2", "logtype", "SourceZone", "SourceIP", "DestinationIP", "Protocol", "SendBytes", "RcvPkts")->offset(10)->limit(10 )->get();

在查询之后,我的目标是拥有这样的json数据

代码语言:javascript
复制
$tdata = [{ headName: "_id", headVal: ["32432dsfsdf34ffds","345dsfdsfcxsddfsfds34"] },{ headName: "time2", headVal: ["2/1/2019","3/2/2019"] },{ headName: "logtype", headVal: ["traffic","url"] },{ headName: "SourceZone", headVal: ["trust","untrust"] },{ headName: "SourceIP", headVal: ["192.168.1.1","192.168.5.1"] },{ headName: "DestinationIP", headVal: ["10.10.0.5","10.10.0.20"] },{ headName: "Protocol", headVal: ["udp","ICP"] },{ headName: "SendBytes", headVal: ["30","40"] },{ headName: "RcvPkts", headVal: ["5","7"]];

所以我该怎么做我所做的就是

代码语言:javascript
复制
for($i=0; $i < count($_logfields); $i++){
    $headname = $_logfields[$i];
    $col[$i]['headName'] = $_logfields[$i];

    for($j=0; $j < count($datas); $j++){    
        $col[$i][$j]['headVal'] = $datas[$j][$headname];
    }
}
echo json_encode($col);

但是返回的是这样的东西,它不适用于我的代码

{"headName":"_id",“0”:{“headVal”:“5df2194d2d845586ce”},“1”:{“headVal”:“5df2194d2d2d81db545586cf”},“2”:{“headVal”:“5df2194d2d2d2d2d845586d0”},“3”:“3”:{“headVal”:“5df2194d2d2d2d845586d1}”},“4”:{“headVal”:“5dbf2194d2d2d2d8d8d8db845586d2}”,“5 headVal:”{“headVal”“7”:{“headVal”:“5df2194d2d845586d5”},“8”:{“headVal”:“5df2194d2d845586d6”},“9”:{“headVal”:{“headVal”:“5df2194d2d845586d7”},{"headName":"time2",“0”:{“headVal”:“清华,11月28日:18:10 +0000"},”1“:”清华“:”清华“,11月28日,2019 16:18:12 +”},“2”:“{headVal”:清华:清华2019年11月28日16:18:12 +0000},“3”:{“headVal”:“清华,2019年11月28日16:18:13 +0000"},”4“:{”headVal“:”headVal“:”清华,11月28日16:18:13 +0000"},“5”:{“headVal”:“清华,11月28日”2019 16:18:13 +0000},“6”:{“headVal”:“清华”,11月28日16:18:14 +},“7”:{“headVal”:“清华”2019年11月28日16:18:14 +0000},“8”:{“headVal”:“清华,2019年11月28日16:18:14 +0000"},”9“:{”headVal“:”清华,11月28日16:15 +0000"},{"headName":"logtype",“0”:{“headVal”:“交通日志”},“1”:{“headVal”:“交通日志”},“2”:{“headVal”:“交通日志”}}“3”:{“headVal”:“流量日志”},“4”:{“headVal”:“流量日志”},“5”:{“headVal”:“流量日志”},“6”:“流量日志”},“7”:{“headVal”:“流量日志”},“8”:{“headVal”:“流量日志”}},“9”:{“headVal”:“流量日志”},{"headName":"SourceZone",“0”:{“headVal”:“隧道”},“1”:{“headVal”:“隧道”},“2”:{“headVal”:“隧道”},“3”:{“headVal”:“隧道”},“4”:{“headVal”:“隧道”},“5”:{“headVal”:“隧道”},“6”:“headVal”:“隧道”},“7”:{“headVal”:“隧道”}“8”:{“headVal”:“信任”},“9”:{“headVal”:“隧道”},{"headName":"SourceIP","0":{"headVal":"172.16.10.252"},"1":{"headVal":"172.16.10.252"},"2":{"headVal":"172.16.10.252"},"3":{"headVal":"172.16.10.252"},"4":{"headVal":"172.16.10.252"}、"5":{"headVal":"172.16.10.252"}、"6":{"headVal":"172.16.10.252"}、"7":{"headVal":"172.16.10.252"}、"8":{"headVal":"10.10.3.150"}、"9":{"headVal":"10.5.5.30"}},{"headName":"DestinationIP","0":{"headVal":"10.10.0.3"},"1":{"headVal":"10.10.0.23"},"2":{"headVal":"10.10.0.4"},"3":{"headVal":"10.10.0.26"},"4":{"headVal":"10.10.0.23"},"5":{"headVal":"10.10.0.4"},"6":{"headVal":"10.10.0.188"},"7":{"headVal":"10.10.0.4"},"8":{"headVal":"194.27.156.207"},“9”:{“headVal”:“10.10.0.144”},{“headName”:“议定书”,"0":{"headVal":"icmp"},"1":{"headVal":"icmp"},“2”:{“headVal”:“icmp”},"3":{"headVal":"icmp"},“4”:{“icmp”:“icmp”},“5”:{“icmp”:“icmp”},"6":{"headVal":"icmp"},"7":{"headVal":"icmp"},“8”:{“icmp”:“udp”},“9”:{“headVal”:“udp”},{"headName":"SendBytes","0":{"headVal":"60"},"1":{"headVal":"60"},"2":{"headVal":"142"},"3":{"headVal":"60"},"4":{"headVal":"60"},"5":{"headVal":"60"},"6":{"headVal":"60"},"7":{"headVal":"60"},"8":{"headVal":"76"},“9”:{“headVal”:“142”},{"headName":"RcvPkts","0":{"headVal":"1"},"1":{"headVal":"0"},"2":{"headVal":"0"},"3":{"headVal":"0"},"4":{"headVal":"0"},"5":{"headVal":"0"},"6":{"headVal":"0"},"7":{"headVal":"0"},"8":{"headVal":"1"},"9":{"headVal":"0"}}

这是从数据库接收的数据。

{“_id”:“5df2194d2d845586ce”,“logtype”:“流量日志”,“time2”:“清华,2019年11月28日16:18:10 +0000",”协议“:”icmp“,"SourceIP":"172.16.10.252","DestinationIP":"10.10.0.3","SendBytes":"60","RcvPkts":"1",”SourceZone“:”隧道“},{”_id“:”5df2194d2d81db845586cf“,”logtype“:”流量日志“,“time2”:“清华,2019年11月28日16:18:12 +0000",”议定书“:”icmp“、"SourceIP":"172.16.10.252”、"DestinationIP":"10.10.0.23“、"SendBytes":"60”、"RcvPkts":"0“、”SourceZone“:”隧道“},{”_id“:”5df2194d2d81db545586d0“、”逻辑类型“:”交通日志“、”time2“:”清华,2019月28日16:18:12 +0000",“议定书”:“udp”、"SourceIP":"172.16.10.252“、"DestinationIP":"10.10.0.4”、"SendBytes":"142“、"RcvPkts":"0”、“SourceZone”:“隧道”}、{“_id”:“5df2194d2d81db845586d1”、“logtype”:“交通日志”、“time2”:“清华,2019、11月28日16:18:13 +0000”、“议定书”:“icmp”、“SourceIP”:“172.16.252”、"DestinationIP":"10.10.0.26“、”SendBytes“:”60“、"RcvPkts":"0”、“SourceZone”:“隧道”}、{“_id”:“5df2194d2d81db545586d2”、“logtype”:“交通日志”、“time2”:“清华,2019月28日16:18:18:13 +0000”、“议定书”:“icmp”、"SourceIP":"172.16.10.252“、"DestinationIP":"10.10.0.23”、"SendBytes":"60","RcvPkts":"0",“SourceZone”:“隧道”},{"_id":"5df2194d2d81db5e845586d3",“logtype”:“流量日志”,“time2”:“清华,201911月28日16:18:13 +0000",”协议“:”icmp“,"SourceIP":"172.16.10.252","DestinationIP":"10.10.0.4","SendBytes":"60","RcvPkts":"0",”SourceZone“:”隧道“},{“_id”:“5df2194d2d81db545586d4”、“logtype”:“流量日志”、“time2”:“清华,2019 11月28日16:18:14 +0000”、“协议”:“icmp”、"SourceIP":"172.16.10.252“、"DestinationIP":"10.10.0.188”、"SendBytes":"60“、"RcvPkts":"0”、“SourceZone”:“隧道”}、{“_id”:“5df2194d2d2d2d81db84558d5”、“逻辑类型”:“流量日志”,“time2”:“清华,2019年11月28日16:18:14 +0000",”议定书“:”icmp“,"SourceIP":"172.16.10.252","DestinationIP":"10.10.0.4","SendBytes":"60","RcvPkts":"0",”SourceZone“:”隧道“},{”_id“:”5df2194d2d81db545586d6“,”logtype“:”交通日志“,”time2“:”清华,11月28日“2019 16:18:14 +0000,“议定书”:“udp”、"SourceIP":"10.10.3.150“、"DestinationIP":"194.27.156.207”、"SendBytes":"76“、"RcvPkts":"1”、“SourceZone”、“SourceZone”}、{"_id":"5df2194d2d81db5e845586d7“、”logtype“:”流量日志“、”time2“:”清华,2019-16:18:15 +0000“、”协议“:”udp“、"SourceIP":"10.5.5.30”、"DestinationIP":"10.10.0.144","SendBytes":"142","RcvPkts":"0",“SourceZone”:“隧道”}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-17 08:40:29

请更新您的查询

代码语言:javascript
复制
   $datas = Logss::select ("_id", "time2", "logtype", "SourceZone", "SourceIP", "DestinationIP", "Protocol", "SendBytes", "RcvPkts")->offset(10)->limit(10 )->get()->toArray();

然后使用以下代码

代码语言:javascript
复制
$new_array = array();
    foreach($matches as $key=>$value){
        foreach($value as $k=>$v){

            $new_array[$k][] = $v;
        }

    }
    echo json_encode($new_array);die;
票数 2
EN

Stack Overflow用户

发布于 2019-12-17 09:11:43

如果$arr是数据库查询的结果,则可以使用laravel集合的map函数或内置的array_map函数。

代码语言:javascript
复制
 $headval = ['headname' => '_id', 'headval' => array_map(function($a){return $a['_id'];},$arr)];
 $time2 = ['headname' => 'time2', 'headval' => array_map(function($a){return $a['time2'];},$arr)];
 $newArray = [$headval,$time2];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59369723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档