jquery ajax将form.serialize,variable和array all作为数据发送

I have below jquery AJAX,

var reply_content = $('#summernote_1').code();

$.ajax({
        type:"POST",
        url: "<?php echo base_url();?>index.php/test/send_reply/"+<?php echo $testinfo->test_id;?>,
        data: $("#test_fm").serialize()+'&file=' + file + '&test_subject=<?php echo $testinfo->testsubject;?>' +'&reply_content=' + reply_content,
});

i have file variable is array contains like below

array([0]=> a [1]=>b),

This was returned with other function which i am passing in AJAX,

How can i pass this in AJAX?

    var reply_content = $('#summernote_1').code();

    $.ajax({
            type:"POST",
            url: "<?php echo base_url();?>index.php/test/send_reply/"+<?php echo $testinfo->test_id;?>,
            data: {$("#test_fm").serialize()+'&file=' + file + '&test_subject=<?php echo $testinfo->testsubject;?>' +'&reply_content=' + reply_content},
    });

and you can use serilizeArray()

If you are trying it in php then you can try like this:

$url = urlencode(serialize($your_array))

append $url in the data

data: {$("#test_fm").serialize()+"&file=<?php echo $url; ?>&test_subject=<?php echo $testinfo->testsubject;?>" +"&reply_content=" + reply_content}

and to restore the variable you can use

$arrVar = unserialize(urldecode($_POST['file']))

You can use serializeArray() to create an object you can add too. Its also a good idea to separate your php from you js where possible to aid readability:

var url = "<?php echo base_url() . 'index.php/test/send_reply/' . $testinfo->test_id;?>";

var test_subject = "<?php echo $testinfo->testsubject;?>";

var data = $("#test_fm").serializeArray();

data.push(
    {
        file: file, 
        test_subject: test_subject
    }
);
$.ajax({
        type:"POST",
        url: url,
        data: data
});