Cette petite fonction à l'allure peu digeste permet de transformer un tableau PHP en un tableau Javascript. Rien de bien formidable en soi, mais elle à tout de moins le mérite de gérer correctement les tableaux multidimensionnels de façon récursive, les valeurs NULL, booléennes ou non numériques. C'est pas du grand art, mais c'est simple et efficace.
public static function writeArray($aInput, $jsVarName, $eol=PHP_EOL) { $js = $jsVarName.'=new Array();'.$eol; foreach ($aInput as $key => $value) { if (!is_numeric($key)) { $key = '"'.$key.'"'; } if (is_array($value)) { $js .= self::writeArray($value, $jsVarName.'['.$key.']', $eol); } else { if (is_null($value)) { $value = 'null'; } elseif (is_bool($value)) { $value = ($value) ? 'true' : 'false'; } elseif (!is_numeric($value)) { $value = '"'.$value.'"'; } $js .= $jsVarName.'['.$key.']='.$value.';'.$eol; } } return $js; }
Vos commentaires
10/11/2010 22:58Posté par Seebz
Il me semble que la fonction `json_encode` permet de faire la même chose ;)