zoukankan      html  css  js  c++  java
  • 在php4下可用,简单的php数组转成json格式,

    function array_to_json( $array ){
        if( !is_array( $array ) ){
            return false;
        }
     
        $associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));
        if( $associative ){
     
            $construct = array();
            foreach( $array as $key => $value ){
     
                // We first copy each key/value pair into a staging array,
                
    // formatting each key and value properly as we go.
     
                
    // Format the key:
                if( is_numeric($key) ){
                    $key = "key_$key";
                }
                $key = "'".addslashes($key)."'";
     
                // Format the value:
                if( is_array( $value )){
                    $value = array_to_json( $value );
                } else if( !is_numeric( $value ) || is_string( $value ) ){
                    $value = "'".addslashes($value)."'";
                }
     
                // Add to staging array:
                $construct[] = "$key: $value";
            }
     
            // Then we collapse the staging array into the JSON form:
            $result = "" . implode( "", $construct ) . " }";
     
        } else { // If the array is a vector (not associative):
     
            $construct = array();
            foreach( $array as $value ){
     
                // Format the value:
                if( is_array( $value )){
                    $value = array_to_json( $value );
                } else if( !is_numeric( $value ) || is_string( $value ) ){
                    $value = "'".addslashes($value)."'";
                }
     
                // Add to staging array:
                $construct[] = $value;
            }
     
            // Then we collapse the staging array into the JSON form:
            $result = "" . implode( "", $construct ) . " ]";
        }
     
        return $result;
    }
  • 相关阅读:
    ZR#330. 【18 提高 3】矿石(容斥)
    牛客NOIP提高组R1 C保护(主席树)
    BZOJ1026: [SCOI2009]windy数(数位dp)
    AtCoderBeginnerContest109题解
    BZOJ3679: 数字之积(数位dp)
    牛客NOIP普及组R1 C括号(dp)
    牛客NOIP提高组R1 A中位数(二分)
    BZOJ1576: [Usaco2009 Jan]安全路经Travel(最短路 并查集)
    ZRDay6A. 萌新拆塔(三进制状压dp)
    Python 入门教程 10 ---- Student Becomes the Teacher
  • 原文地址:https://www.cnblogs.com/qhorse/p/4597161.html
Copyright © 2011-2022 走看看