php专区

 首页 > php专区 > PHP基础 > 数组 > PHP中数组转换成json字符串程序代码 - php数组

PHP中数组转换成json字符串程序代码 - php数组

分享到:
【字体:
导读:
          数据转换js格式的数据是我们常用一种数据传递的方法,特别像ajax中会时常用到把数据转换成json然后再转换回来,下面看一个实例,代码如下:functionarray_to_json($array){if(!is_array($array)){retur.....

PHP中数组转换成json字符串程序代码

数据转换js格式的数据是我们常用一种数据传递的方法,特别像ajax中会时常用到把数据转换成json然后再转换回来,下面看一个实例,代码如下:

  1. function array_to_json($array) { 
  2.  if (! is_array ( $array )) { 
  3.   return false; 
  4.  } 
  5.  
  6.  $associative = count ( array_diff ( array_keys ( $array ), array_keys ( array_keys ( $array ) ) ) ); 
  7.  if ($associative) { 
  8.    
  9.   $construct = array (); 
  10.   foreach ( $array as $key => $value ) { 
  11.     
  12.    // We first copy each key/value pair into a staging array, 
  13.    // formatting each key and value properly as we go. 
  14.    
  15.  
  16.    // Format the key: 
  17.    if (is_numeric ( $key )) { 
  18.     $key = "key_$key"
  19.    } 
  20.    $key = """ . addslashes ( $key ) . """
  21.     
  22.    // Format the value: 
  23.    if (is_array ( $value )) { 
  24.     $value = array_to_json ( $value ); 
  25.    } else if (! is_numeric ( $value ) || is_string ( $value )) { 
  26.     $value = """ . addslashes ( $value ) . """
  27.    } 
  28.     
  29.    // Add to staging array: 
  30.    $construct [] = "$key: $value"
  31.   } 
  32.    
  33.   // Then we collapse the staging array into the JSON form: 
  34.   $result = "{" . implode ( ","$construct ) . "}"
  35.  
  36.  } else { // If the array is a vector (not associative): 
  37.  
  38.  
  39.   $construct = array (); 
  40.   foreach ( $array as $value ) { 
  41.     
  42.    // Format the value: 
  43.    if (is_array ( $value )) { 
  44.     $value = array_to_json ( $value ); 
  45.    } else if (! is_numeric ( $value ) || is_string ( $value )) { 
  46.     $value = """ . addslashes ( $value ) . """
  47.    }//开源软件:phpfensi.com 
  48.     
  49.    // Add to staging array: 
  50.    $construct [] = $value
  51.   } 
  52.    
  53.   // Then we collapse the staging array into the JSON form: 
  54.   $result = "[" . implode ( ", "$construct ) . "]"
  55.  } 
  56.  
  57.  return $result

你可以试试这个,然后json_encode换成上面的函数看看正常了吗,代码如下:

  1. if($_GET['enews']=='ok'){ 
  2.     echo json_encode(array('a'=>'王进'));exit
  3. ?> 
  4. "text/javascript" src="jquery.js"
  5. "text/javascript"
  6. $(function(){ 
  7.     $.get("?enews=ok"function(result){ 
  8.     alert(result); 
  9.  }); 
  10. }); 
  11.  

关于php中json_encode

json_encode()将PHP的不同类型的变量转换为对应的JSON字符串 string json_encode(mixed $value [,int $options = 0])

PHP 5.3.0

JSON_HEX_QUOT:将所有的双引号(”)转换为u0022,实例代码如下:

  1. $data = '"'
  2. echo json_encode($data); // """ 
  3. echo json_encode($data, JSON_HEX_QUOT); 
  4.  // "u0022" 

JSON_HEX_TAG:将所有的大于号(>)转换为u003E,将所有的小于号(<)转换为 u003C。

JSON_HEX_AMP:将所有的与号(&)转换为 u0026。

JSON_HEX_APOS:将所有的单引号(’)转换为u0027。

JSON_FORCE_OBJECT:当value为非关联数组时强制输出结果为JSON对象。在接收者要求数据为对象且value为空数组时

使用,实例代码如下:

  1. $data = array(); 
  2. echo json_encode($data); // [] 
  3. echo json_encode($data, JSON_FORCE_OBJECT); // {} 
  4. PHP 5.3.3 
  5. JSON_NUMERIC_CHECK: Encodes numeric strings as numbers. 
  6. PHP 5.4.0 
  7. JSON_BIGINT_AS_STRING: Encodes large integers as their original string value. Available since PHP  
  8. 5.4.0.//开源软件:phpfensi.com 
  9. JSON_PRETTY_PRINT: Use whitespace in returned data to format it. Available since PHP 5.4.0. 
  10. JSON_UNESCAPED_SLASHES: Don’t escape /. Available since PHP 5.4.0. 
  11. JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally (default is to escape as uXXXX). 
  12. Available since PHP 5.4.0.
分享到:
php中利用array_filter过滤数组为空值 - ...
php中利用array_filter过滤数组为空值 在我们开发过程中,判断数组为空时你会想到什么方法呢?首先想到的应该是empty函数,不过直接用empty函数判断为空是不对的,因为当这个值是多维数的时候,empty结果是有值的. 其实我们可以利用array_filter函数轻松去掉多维空值,而数组的下标没有改变,下面...
PHP explode() 字符串转换数组 - php数组
PHP explode() 字符串转换数组 在php中要把字符串转换数组的方式有很多种,我们如果有规律性的可直接使用explode()函数来把字符串截成数组. 定义和用法:explode() 函数把字符串分割为数组。 语法:explode(separator,string,limit) 例子,在本例中,我们将把字符串分割为数组,代码如下:
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……