如何更改php数组

时间:2015-04-21 13:27:36

标签: php laravel query-builder

我没有答案的简单问题。

如何从中更改我的数组:

[{"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"}]

4 个答案:

答案 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