我没有答案的简单问题。
如何从中更改我的数组:
[{"sku":"6"},{"buyers":"7"},{"base":"8"}]
到此:
[{"sku":"6","buyers":"7","base":"8"}]
我有三个不同数据库表的三个查询:
$sku = DB::table('mapiranje')->select(DB::raw('count(*) as sku'))
->where('mate_fk', '=', NULL)
->get();
$kupac = DB::table('mapkupci')->select(DB::raw('count(*) as buyers'))
->where('kupci_fk', '=', NULL)
->get();
$base = DB::table('dist_base')->select(DB::raw('count(*) as base'))
->where('base_fk', '=', NULL)
->get();
现在每个人都返回:
[{"sku":"6"}]
[{"buyers":"6"}]
[{"base":"6"}]
我使用merge_array制作了一个数组,但我得到了:
[{"sku":"6"},{"buyers":"7"},{"base":"8"}]
我想要的是:
[{"sku":"6","buyers":"7", "base":"8"}]
答案 0 :(得分:2)
按照正确的Laravel方式重构您的代码:
$result = [
'sku' => DB::table('mapiranje')->whereNull('mate_fk')->count(),
'buyers' => DB::table('mapkupci')->whereNull('kupci_fk')->count(),
'base' => DB::table('dist_base')->whereNull('base_fk')->count()
];
答案 1 :(得分:0)
$result = [];
foreach($input as $oneInputRow) {
$result[$oneInputRow[0]] = $oneInputRow[1];
}
答案 2 :(得分:0)
$target = array();
$start = array(array("sku"=>"6"), "buyers"=>"7"), "base"=>"8"));
foreach($start as $sub){
foreach($sub as $key => $val){
$target[$key] = $val;
}
}
如果laravel提供任何特殊语法,那么不是shure,但只是使用php我就像上面那样做。 基本上你循环开始数组。在其中循环遍历每个数组以获得键/ val组合并将其放入目标数组中。 对于第二个循环,如果每个辅助数组中只有一个条目,则会有其他方法。
答案 3 :(得分:0)
请尝试以下代码
$dd = '[{"sku":"6"},{"buyers":"7"},{"base":"8"}]';
$data = json_decode($dd,true);
$result = array();
foreach($data as $key=>$value){
foreach($value as $key1=>$value1){
$result[$key1] = $value1;
}
}
echo json_encode($result); //this will print your required format result