/**************************************************************
02 *
03 * 使用特定function对数组中所有元素做处理
04 * @param string &$array 要处理的字符串
05 * @param string $function 要执行的函数
06 * @return boolean $apply_to_keys_also 是否也<SPAN class=t_tag onclick=tagshow(event) href="tag.php教程?name=%D3%A6%D3%C3">应用</SPAN>到key上
07 * @access public
08 *
09 *************************************************************/
10 function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
11 {
12 foreach ($array as $key => $value) {
13 if (is_array($value)) {
14 arrayRecursive($array[$key], $function, $apply_to_keys_also);
15 } else {
16 $array[$key] = $function($value);
17 }
18
19 if ($apply_to_keys_also && is_string($key)) {
20 $new_key = $function($key);
21 if ($new_key != $key) {
22 $array[$new_key] = $array[$key];
23 unset($array[$key]);
24 }
25 }
26 }
27 }
28
29 /**************************************************************
30 *
31 * 将数组转换为JSON字符串(兼容中文)
32 * @param array $array 要转换的数组
33 * @return string 转换得到的json字符串
34 * @access public
35 *
36 *************************************************************/
37 function JSON($array) {
38 arrayRecursive($array, 'urlencode', true);
39 $json = json_encode($array);
40 return urldecode($json);
41 }