公司业务需求,对接 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():数组的并集;
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~