我有一个包含帐单详细信息的数组。我在另一个阵列中获取了该球状票据的收据(doc_no)。
我想要一个多维数组输出,即在该数组中将显示账单数据以及与该账单匹配的接收数据。
预期输出:
bill101: {
ballance : 100,
paid : 100,
date:2018,
doc_no101:{
// reciept data of matching bill number will come here
}
doc_no102:{
// reciept data of matching bill number will come here
}
}
bill102: {
ballance : 100,
paid : 100,
date:2018,
doc_no103:{
// reciept data of matching bill number will come here
}
doc_no105:{
// reciept data of matching bill number will come here
}
}
我如何编写代码
首先,我将获取账单表数据并将其存储在数组中
$bill_data=DB::table('bills')
->distinct()
->select('bill_no','paid','total_amount','ballance','date')
->get();
接下来,我将执行foreach循环并将其存储在单独的数组中。我将对第二个重复的接收数据重复上述两个步骤。
最后,我将这些数组推送到单个数组。但是我没有得到完美的输出
我的代码
$bill_data=DB::table('bills')
->distinct()
->select('bill_no','paid','total_amount','ballance','date')
->get();
$finalOutput = [];
$temp = [];
foreach ($bill_data as $b) {
$dumy = array(
$b->bill_no=>[
'paid' => $b->paid,
'total_amount' => $b->total_amount,
'ballance' => $b->ballance,
'date' => '222']
);
array_push($finalOutput, $dumy);
$reciept_data=DB::table('reciepts')
->where('bill_no', $b->bill_no)
->get();
foreach ($reciept_data as $r) {
$reciept=array(
$r->doc_no=>[
'paid' => $r->paid,
'ballance' => $r->ballance]
);
array_push($temp,$reciept);
}
array_push($finalOutput, $temp);
}