Tworzenie wielowymiarowego obiektu do eksportu XML

Importuję plik csv, który zawiera wiele danych na fakturze. Dane te muszą być pogrupowane w oparciu o ID dostawcy, aby wyświetlić nagłówek dla każdego dostawcy z sumą wszystkich faktur dla tego Id dostawcy; a następnie wyświetl każdą fakturę poniżej. Celem tego projektu jest zaimportowanie pliku CSV, wyświetlenie danych użytkownikowi, umożliwienie zmiany pewnych wartości za pomocą wybranych pól, a następnie kliknięcie przycisku eksportu do formatu XML. XML jest skonstruowany w podobny sposób, jak HTML, gdzie przy każdej grupie faktur wyświetlane są najpierw pewne wspólne dane, a następnie dane przekazu są poniżej. Aby to osiągnąć, próbuję ustrukturyzować obiekt w taki sposób, aby pomóc mi go poprawnie przekonwertować na XMLhttp://goessner.net/download/prj/jsonxml/ .

Problem: Drugie dwie płatności muszą być zgrupowane razem i chciałbym, aby tablica była tworzona dla każdego wiersza szczegółowych danych, a następnie dodawana do głównego obiektu w atrybucie PmtDetail. W tej chwili ten kod wyświetla tylko pierwszy wiersz i ignoruje resztę.

Fragment CSV (nie uwzględniam tutaj wszystkich wierszy używanych w kodzie)

 ID         CardCode   payment_sum    amount     
 1610165    BENV5271    100            100 
 1609026    BENV5635    509.85         287.33
 1609025    BENV5635    509.85         222.52 

JSON

 [{"DocNum":"1610165","CardCode":"BENV5271","InvPayAmnt":"100.00","PmntDate":"2012-03-29","payment_sum":"100.00"},
 {"DocNum":"1609026","CardCode":"BENV5635","InvPayAmnt":"287.33","PmntDate":"2012-03-29","payment_sum":"509.85"},  
 {"DocNum":"1609025","CardCode":"BENV5635","InvPayAmnt":"222.52","PmntDate":"2012-03-29","payment_sum":"509.85"}]

Jquery

 $(document).ready(function() {
    $.getJSON('CSV.php', function(data) {

    var prevCardCode = '';
    var newDiv; var NewDiv2;
var PaymentFormat;

    $.each(data, function(index, element) { //looping once to display header info such as sum
        XMLObject = []; // Creating a new object for each row     

        if (element['CardCode'] != prevCardCode) {

            XMLObject.Vendor_Sum = element['payment_sum'];
            XMLObject.Name1 = element['CardName'];
            XMLObject.Addr1 = element['Address'];

            console.log(XMLObject);

            newDiv = $('<div/>').addClass('row').appendTo('#showdata');
            $('<div class="sum_field">' + 'Total: ' + element['payment_sum'] + '</div>').appendTo(newDiv);

                $('<div class="options">Payment Format: <select name="Payment_Format" id="Payment_Format"><option value="CTX" selected="selected">Company to Company</option><option value="PPD">Company to Person</option></select> </div><div id="Selected_Format"></div>').appendTo(newDiv);

                XMLObject.paymentFormat = $('select#Payment_Format').val();;

                $('select#Payment_Format').change(function(){
                    PaymentFormat = $(this).val();
                    XMLObject.paymentFormat = PaymentFormat;
                });

        }

        newDiv2 = $('<div/>').addClass('sub_row').appendTo(newDiv);

        prevCardCode = element['CardCode'];

        $.each(element, function(key, value) { looping 2nd time to display the detail info
            XMLObjectDetail = {};   // Creating an array for each row of detail info

            XMLObjectDetail['TotalCurAmount'] = element['InvPayAmnt']; 
            XMLObjectDetail['NetCurAmount'] = element['InvPayAmnt'];

                   $('<div class="field">' + value + '</div>').appendTo(newDiv2);
                   XMLObject.PmtDetail =  XMLObjectDetail;
             });      
         });
     });
  });

PHP

 <?php 
  if (($handle = fopen('upload/BEN-new.csv', "r")) === FALSE) {
    die('Error opening file'); 
 }

 $headers = fgetcsv($handle, 1024, ',');
 $complete = array();

while ($row = fgetcsv($handle, 1024, ",")) {
       $complete[] = array_combine($headers, $row);
}
    fclose($handle);

    echo json_encode($complete);

?>

questionAnswers(2)

yourAnswerToTheQuestion