PHP对MongoDB数据的处理

2022-10-11 21:51:05 139 0
魁首哥

公司业务需求,对接 MySQL MongoDB 合并使用,但是前台对数据格斯要求是按照一种格式取数据,MySQL关系型数据很简单就拼接成了,但是mongo是非关系型,获取的数据都是对象json,想到sort格式化,但是格式化后的数据排序打乱了, 后台运营员要求按照某个方式排序,所以还需要对格式化的数据进行二次排序。

0. array_multisort($num,SORT_DESC,SORT_NUMERIC);

代码的大致意思就是取出创建时间,以创建时间为基准,对sort后的数据二次排序

下面是PHP经常用到的数据

1、将 字符串 分割成数组:$array=explode(separator,$string):

  separator:分隔符,

  $string:分割的字符串;

 2、将数组组合成字符串:$string=implode(glue,$array):

  glue:胶合符,

  $array:数组;

   3、统计数组的长度:count():

  count函数有两个参数:

  0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);

  1(或COUNT_RECURSIVE)为检测多维数组

  $arr=array(

  0=>array(‘title’ => ‘苹果’, ‘viewnum’ => 青的, ‘content’ => ‘pingguo’),

  1=>array(‘title’ => ‘柚子’, ‘viewnum’ => 红心, ‘content’ => ‘youzi’)

  );

  echo ‘不统计多维数组:’.count($arr,0);//count($arr,COUNT_NORMAL)

  echo ”

  ”;

  echo ‘统计多维数组:’.count($arr,1);//count($arr,COUNT_RECURSIVE)

  ?>

 4、合并两个数组:array_merge():

  $a[];

  $b[];

  $c[] = array_merge( $a , $b );

   5、数组排序:

  sort() – 以升序对数组排序

  rsort() – 以降序对数组排序

  asort() – 根据值,以升序对关联数组进行排序

  ksort() – 根据键,以升序对关联数组进行排序

  arsort() – 根据值,以降序对关联数组进行排序

  krsort() – 根据键,以降序对关联数组进行排序

  array_multisort() 函数对多个数组或多维数组进行排序。

  $a1=array(1,30,15,7,25);

  $a2=array(4,30,20,41,66);

  $num=array_merge($a1,$a2);

  print_r($num);

  ?>

   6、数组与json格式的转换:

  json_encode():将数组转换为json对象格式,追加参数:JSON_UNESCAPED_UNICODE对中文进行编码;

  json_decode():将json对象转换为php对象格式;

  json_decode( $obj , true ):将json对象转换为数组;

  $bad_json = “{ ‘bar’: ‘baz’ }”;

  $bad_json = ‘{ bar: “baz” }’;

  $bad_json = ‘{ “bar”: “baz”, }’;

  对这三个字符串执行json_decode()都将返回null,并且报错。

  第一个的错误是,json的分隔符(delimiter)只允许使用 双引号 ,不能使用单引号。第二个的错误是,json名值对的”名”(冒号左边的部分),任何情况下都必须使用双引号。第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。

  另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

   7、数组的交集,差集,并集

  $inter_arr = array_intersect($m_arr,$m_card):数组的交集;

  $diff_arr = array_diff($m_card,$m_arr):数组的差集;

  数组的差集只能获取第一个数组中别的数组中没有的,如想获取所有数组的差集结合array_merge();

  $diff_arr = array_diff($m_card,$m_arr);

  $diff_arr2 = array_diff($m_arr,$m_card);

  $arr = array_merge($diff_arr,$diff_arr2);

  $merge = array_merge():数组的并集;

收藏
分享
海报
0 条评论
139
上一篇:JavaScript数组中slice、concat方法真的是深拷贝吗? 下一篇:PHP 字符串函数详解

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码