当前位置:首页 > PHP教程 > php数组 > 列表

用PHP将一个数组存到数据库的一个字段的方法

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-09 13:52:26 浏览: 评论:0 

在工作项目中有一个需求,要把数一些数据转成数组,然后再存到数库库一个字段中,个人目前知道两种方法,一种是用序列化函数serialize($arr);,还有一种是用php的json扩展自带的函数json_encode($arr);.

要把数一个数组,存到数据库的一个字段中,有两种方法,一种是用序列化函数serialize($arr);还有一种是用php的json扩展自带的函数json_encode($arr);如果json_encode对含有中文的字符进行编码时,会自动转换成unicode编码,就像这样:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;},虽然js上能正常处理,但是看起来还是不那爽,在PHP的官方网站上面找到一个函数,可以解决这个问题,也就是将数据转换json,而且中文不会被转换为unicode码,代码如下:

  1. <?php 
  2. function php2js($a=false) 
  3.   if (is_null($a)) return 'null'
  4.   if ($a === false) return 'false'
  5.   if ($a === true) return 'true'
  6.   if (is_scalar($a)) 
  7.   { 
  8.     if (is_float($a)) 
  9.     { 
  10.       // Always use "." for floats. 
  11.       $a = str_replace(",""."strval($a)); 
  12.     } 
  13.  
  14.     // All scalars are converted to strings to avoid indeterminism. 
  15.     // PHP's "1" and 1 are equal for all PHP operators, but 
  16.     // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend, 
  17.     // we should get the same result in the JS frontend (string). 
  18.     // Character replacements for JSON. 
  19.     static $jsonReplaces = array(array("""/""n""t""r""b""f"'"'), 
  20.     array('\', '/', 'n', 't', 'r', 'b', 'f', '"')); 
  21.     return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"'
  22.   } 
  23.   $isList = true; 
  24.   for ($i = 0, reset($a); $i < count($a); $i++, next($a)) 
  25.   { //开源软件:phpfensi.com 
  26.     if (key($a) !== $i
  27.     { 
  28.       $isList = false; 
  29.       break
  30.     } 
  31.   } 
  32.   $result = array(); 
  33.   if ($isList
  34.   { 
  35.     foreach ($a as $v$result[] = php2js($v); 
  36.     return '[ ' . join(', '$result) . ' ]'
  37.   } 
  38.   else 
  39.   { 
  40.     foreach ($a as $k => $v$result[] = php2js($k).': '.php2js($v); 
  41.     return '{ ' . join(', '$result) . ' }'
  42.   } 
  43. ?> 

使用方法一:

echo serialize(array(‘code’=>’1′,’msg’=>’PHP日志’));

输出:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;}

使用方法二:

echo json_encode(array(‘code’=>’1′,’msg’=>’PHP日志’));

输出:{“code”:”1″,”msg”:”PHPu65e5u5fd7″}

使用方法三:

echo php2js(array(‘code’=>’1′,’msg’=>’未知错误’));

输出:{ “code”: “1”, “msg”: “PHP日志” }

Tags: PHP数组 PHP数据库

分享到: