rendered paste bodyfunction php2js($data, $array_keys = array(), $level = 0, $isarray = false, $key_path = ""){ $reservedwords = array("if", "for", "class", "foreach", "in", "!xsi:nil"); $jsarray = $isarray ? '[ ' : '{ '; $recs = array(); $array_str = "%s'%s'"; $value_str = "%s%s: '%s'"; $cur_key_path = $key_path; $tabs = str_repeat("\t", $level); if(is_array($data)) { foreach($data as $key=>$value) { $key_path = $cur_key_path . '/' . $key; if(in_array($key, $reservedwords, true)) continue; if(is_array($data[$key])) { $recs[] = ($isarray ? $tabs : $key . " : ") . php2js($data[$key], $array_keys, $level + 1, in_array($key_path, $array_keys), $key_path); } else { if($isarray) { $recs[] = sprintf($array_str, $tabs, c($value)); } else { $recs[] = sprintf($value_str, $tabs, $key, c($value)); } } } $jsarray .= "\n\t" . implode(",\n\t", $recs) . "\n"; } $jsarray .= $tabs . ($isarray ? ']' : '}'); return $jsarray;}