Se me ocurrió utilizar json pero tube problemas debido a que json_encode() solo funciona con carácteres utf8 y no utilizo utf8 debido a acentos y eñes en cajas de texto y base de datos y tendria que decodificar todo a utf8 o pasar todo a htmlentities pero por asuntos de seguridad no lo hago.
Se me ocurrió también usar serialize pero la única función buena que encontré era de phpjs.org, pero lamentablemente me dió error, no reconocó las multiples dimensines de mi array.
Asi que después de buscar y buscar y buscar sin éxito decidí hacer mi función que convierte cualquier array multidimensional de php en array de javascript.
No puede convertir objetos que no sean arrays, strings, booleanos o integers.
Si quieres pueden modificarlo para aceptar valores float, pharseInt() o booleano directo, yo prefiero binario 1:0 para valores booleanos.
Código
function toArrJs($array, $callback, $recursive = false){ return ''; /* No es un array */ $return = ($recursive ? '' : 'var ').$callback." = new Array();\n"; foreach($array as $var => $val){ }else{ else $return .= $callback."['".urlencode($var)."'] = '".str_replace(array('%','+'), array('\\x', ' '), urlencode($val))."';\n"; } } return $return; } 'uno' => 'item1', 'a' => 'letra a', 'b' => 'letra b' ) ); echo toArrJs($array, 'callback');
Saludos.