如何更改 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()
];
简单的问题我没有答案。
如何更改我的数组:
[{"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()
];