如何在php中将数组推送到多维数组

时间:2018-07-20 11:54:44

标签: php arrays laravel

我有一个包含帐单详细信息的数组。我在另一个阵列中获取了该球状票据的收据(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);
}

0 个答案:

没有答案