如何更改 php 数组

How to change a php array

简单的问题我没有答案。

如何更改我的数组:

[{"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();

现在每个 returns:

[{"sku":"6"}]
[{"buyers":"6"}]
[{"base":"6"}]

我已经使用 merge_array 制作了一个数组,但我得到:

[{"sku":"6"},{"buyers":"7"},{"base":"8"}]

我想要的是:

[{"sku":"6","buyers":"7", "base":"8"}]
$result = [];
foreach($input as $oneInputRow) {
  $result[$oneInputRow[0]] = $oneInputRow[1];
}
$target = array();
$start = array(array("sku"=>"6"), "buyers"=>"7"), "base"=>"8"));
foreach($start as $sub){
  foreach($sub as $key => $val){
    $target[$key] = $val;
  }
}

不确定 laravel 是否提供任何特殊语法,但如果 php 我会像上面那样做。 基本上你遍历起始数组。因为你遍历每个数组以获得 key/val 组合并将其放入目标数组。 对于第二个循环,如果每个辅助数组中只有一个条目,则还有其他方法。

请尝试以下代码

$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

根据正确的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()
];