Re: PHP arrays and javascript
| From: | Hodicska Gergely | Date: | Tue, 30 Nov 2004 05:26:06 +0000 |
| Subject: | Re: PHP arrays and javascript | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-203117@lists.php.net to get a copy of this message | ||
Hi!
Would this work the same for multidimensional arrays? Encoding was a special feature needed by me, maybe you don't need it.Usage: myArray = array(...); echo '<script>'.arrayToJsArray($myArray, 'myArray').'</script>'; Felho --- 8< --- arrayToJsArray.php --- 8< --- <?
function valueToJsValue($value, $encoding = false)
{
if (!is_numeric($value)) {
$value = str_replace('\\', '\\\\', $value);
$value = str_replace('"', '\"', $value);
$value = '"'.$value.'"';
}
if ($encoding) {
switch ($encoding) {
case 'utf8' :
return iconv("ISO-8859-2", "UTF-8", $value);
break;
}
} else {
return $value;
}
}
function arrayToJsArray( $array, $name, $nl = "\n", $encoding = false ) {
if (is_array($array)) {
$jsArray = $name . ' = new Array();'.$nl;
foreach($array as $key => $value) {
switch (gettype($value)) {
case 'unknown type':
case 'resource':
case 'object':
break;
case 'array':
$jsArray .= arrayToJsArray($value, $name.'['.valueToJsValue($key, $encoding).']', $nl);
break;
case 'NULL':
$jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = null;'.$nl;
break;
case 'boolean':
$jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.($value ? 'true' : 'false').';'.$nl;
break;
case 'string':
$jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.valueToJsValue($value, $encoding).';'.$nl;
break;
case 'double':
case 'integer':
$jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.$value.';'.$nl;
break;
default:
trigger_error('Hoppa, egy új típus a PHP-ben? '.__CLASS__.'::'.__FUNCTION__.'()!', E_USER_WARNING);
}
}
return $jsArray;
} else {
return false;
}
}
?>
--- 8< --- arrayToJsArray.php --- 8< ---