Hola Voy a tratar de explicarte un poco lo que yo hice para pasar un array de javascript a php por json ...
Perdon si algo esta mal, pasa que no entiendo tanto como para explicarte jeje !!!! 
Aca cargamos el array en javascript
: 
funcion_update.js   
Código javascript
:
Ver originalfunction calculo(e)
{
var preciojs1 = new Array();
var preciojs2 = new Array();
 
preciojs1[fmc] = gral_desc_1s.toFixed(2);   // esto en mi funcion esta dentro de un for que le va asignando los datos !!! por eso el subindice fmc
preciojs2[fmc] = gral_desc_2s.toFixed(2);
 
//aca la asingacion por medio de json ...
  var obj={preciopes : preciojs1,
preciodol:preciojs2};
  var cadena=obj.toJSONString();
  enviarDatos(cadena);
//alert(cadena);
}
 
 
// y esto es la parte comun
addEvent(window,'load',inicializarEventos,false);
 
function inicializarEventos()
{
  var ref=document.getElementById('boton1');
  addEvent(ref,'click',calculo_fondo_listado,false);
}
 
//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}
 
 
var conexion1;
function enviarDatos(cadena) 
{
  conexion1=crearXMLHttpRequest();
  conexion1.onreadystatechange = procesarEventos;
  conexion1.open('GET','actualiza.php?cadena='+cadena, true);
  conexion1.send(null);
}
 
function procesarEventos()
{
  var resultados = document.getElementById('resultados');
  if(conexion1.readyState == 4)
  {
    resultados.innerHTML = conexion1.responseText;
  } 
  else
    if (conexion1.readyState==1 || conexion1.readyState==2 || conexion1.readyState==3)
    {
      resultados.innerHTML = "<b>Procesando... Aguarde unos instantes</b>";
    }
}
 
 
function crearXMLHttpRequest() 
{
  var xmlHttp=null;
  if (window.ActiveXObject) 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (window.XMLHttpRequest) 
      xmlHttp = new XMLHttpRequest();
  return xmlHttp;
}
  
  
y en la pagina php donde lo recibis, haces algo asi .
actualiza.php, le puse los nombres igual como lo tengo yo,    
Código php:
Ver originalrequire('json.php');
include('conexion.php');
$json=new Services_JSON();
 
//despues haces un for para recorrer el arreglo 
//mejor seria un foreach !!!
 
for($i=1;$i<=cant_valores_array;$i++)
{
    echo $precio1=$cad->preciopes[$i]; echo " ";
    echo $precio2=$cad->preciodol[$i]; echo "<br>";
}
  
Espero que te sirva la ayuda !!!!! 
Saludos, Ricardo