• php 数组转字符串 防止json乱码


    <?php
    /**************************************************************
     *
     * 使用特定function对数组中所有元素做处理
     * @param string &$array  要处理的字符串
     * @param string $function 要执行的函数
     * @return boolean $apply_to_keys_also  是否也应用到key上
     * @access public
     *
     *************************************************************/
    function array_recursive(&$array, $function, $apply_to_keys_also = false,$number_check=0)
    {
        static $recursive_counter = 0;
        if (++$recursive_counter > 1000) {
            die('possible deep recursion attack');
        }
        foreach ($array as $key => $value) {
            if(is_numeric($value) && $number_check==1){
                $value=(float)$value;
            }
            if (is_array($value)) {
                array_recursive($array[$key], $function, $apply_to_keys_also);
            } else {
                $value=str_replace('"','"',$value);//处理数组中包含JSON数据
                $array[$key] = $function($value);
            }
     
            if ($apply_to_keys_also && is_string($key)) {
                $new_key = $function($key);
                if ($new_key != $key) {
                    $array[$new_key] = $array[$key];
                    unset($array[$key]);
                }
            }
        }
        $recursive_counter--;
    }
    
    
    /**************************************************************
     *
     * 将数组转换为JSON字符串(兼容中文)
     * @param array $array  要转换的数组
     * @return string  转换得到的json字符串
     * @access public
       *number_check——生成json时纯数字是否要去掉引号1是0否
     *************************************************************/
    function array_to_json($array,$number_check=0) {
        array_recursive($array, 'urlencode', true);
        if($number_check==1){
            $json = json_encode($array,JSON_NUMERIC_CHECK);    
        }else{
            $json = json_encode($array);
        }
        return urldecode($json);
    }
  • 相关阅读:
    C/C++程序内存的分配
    【解题报告】UVA101 The Blocks Problem
    洗牌算法
    【持续更新】算法竞赛常用模板
    北京邮电大学2021乐理公共选修课期末考试
    Oracle通用大数据量存储过程分页修正版
    (转)NHibernate 3.0在PetShop 3层架构中的应用
    Json.Net学习笔记
    JS获得浏览器高度和宽度参数
    jQuery数组处理汇总
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/12619238.html
Copyright © 2020-2023  润新知