摘要 腾兴网为您分享:PHP关联数组排序几种方法,周公解梦,智宽生活,有信,英语字典等软件知识,以及cad2014注册机64,壹学车,雷蛇萨诺狼蛛驱动,图标提取工具,百家云直播,cad批量打印batchplot,营口沿海银行,超级root大师,得实ar540驱动,华为云空间,屏幕保护动画,炳捷,明日之后ios,最终幻想苹果版,1j22等软件it资讯,欢迎关注腾兴网。对于普通数据排序我们直接使用系统自带数组排序函数即可,如果是关系数组排序你知道如何操作吧?下面来给各位整理了几个例子大家一起来看看吧。 参数说明:$data 目标数组 $key 排...

对于普通数据排序我们直接使用系统自带数组排序函数即可,如果是关系数组排序你知道如何操作吧?下面来给各位整理了几个例子大家一起来看看吧。

参数说明:$data 目标数组 $key 排序字段, $sort 排序规则

 代码如下 复制代码

function getSortArray($data,$key,$sort='ASC')

{

if(!is_array($data))

{

return false;

}

$len = count($data);

for($k=1; $k

{

for($j=$len-1,$i=0;$i

{

if(strtoupper($sort) == 'DESC')

{

$flag = $data[$j][$key]>$data[$j-1][$key];

}

else

{

$flag = $data[$j][$key]

}

if($flag)

{

$tmp  = $data[$j];

$data[$j]   = $data[$j-1];

$data[$j-1] = $tmp;

}

}

}

return $data;

}

使用方法:

$a = array(

array('name'=>'stone','age'=>17,'sex'=>'男'),

array('name'=>'sunny','age'=>28),

array('name'=>'grass','age'=>16,'sex'=>'女'),

array('name'=>'sea','age'=>15,'birthday'=>'1987-08-16')

);

print_r(getSortArray($a,'age','desc'));

结果:

Array

(

[0] => Array

(

[name] => sunny

[age] => 28

)

[1] => Array

(

[name] => stone

[age] => 17

[sex] => 男

)

[2] => Array

(

[name] => grass

[age] => 16

[sex] => 女

)

[3] => Array

(

[name] => sea

[age] => 15

[birthday] => 1987-08-16

)

)

不知道你有没有看懂呢?没懂我们再看两个数组排序例子

要对数组针对age字段进行排序,php自带的简单sort功能函数,显然都不能满足需求,因此需要自己写一个快速排序代码来实现相应的需求。

 代码如下 复制代码

/**

* Description:获取中枢点的位置

*

* @param array $array

* @param int $left

* @param int $right

* @param string $field

* @return int

*/

function fetchArrayPivot (&$array, $left, $right, $field)

{

// 基准定义

$stand = $array[$left];

// 遍历数组

while ($left < $right) {

while ($left < $right && $array[$right][$field] >= $stand[$field]) {

$right --;

}

if ($left < $right) {

$array[$left ] = $array[$right];

}

while ($left < $right && $array[$left][$field] <= $stand[$field]) {

$left ;

}

if ($left < $right) {

$array[$right --] = $array[$left];

}

}

// 获取中枢点位置

$array[$left] = $stand;

return $left;

}

/**

* Description:快速排序主程序

*

* @param array $array

* @param int $begin

* @param int $end

* @param string $field

*/

function quickSort (&$array, $begin, $end, $field)

{

// 变量定义

$pivot = null;

if ($begin < $end) {

$pivot = fetchArrayPivot($array, $begin, $end, $field);

quickSort($array, $begin, $pivot - 1, $field);

quickSort($array, $pivot 1, $end, $field);

}

}

2,调用示例:

$array = array(

array(

'name' => "xiao",

'age' => 3

),

array(

'name' => 'wang',

'age' => 1

),

array(

'name' => 'chen',

'age' => 2

),

array(

'name' => 'zhengyi',

'age' => 4

),

array(

'name' => 'chai',

'age' => 14

)

);

$begin = getTime();

quickSort($array, 0, count($array) - 1, 'age');

print_r($array);

$end = getTime();

$spend = $end - $begin;

echo "花费时间为:".$spend."秒n";

function getTime()

{

list($msec, $sec) = explode(" ", microtime());

return (float)$msec (float)$sec;

}

相关推荐

php关联数组不使用函数排序,php关联数组_PHP关联数组排序几种方法相关推荐

  1. html函数splice,js数组的常用函数(slice()和splice())和js引用的三种方法总结—2019年1月16日...

    总结: slice()和splice() slice(参数1,参数2)可以查找数组下对应的数据,参数1为起始位置,参数2为结束位置,参数2可以为负数,-1对应的是从后向前数的第一个数值.splice( ...

  2. sort函数排序字母c语言,c语言数组用sort函数排序?

    c语言运用sort 排序函数,需要的头文件是什么? sort不属于C语言的标准函数,所以也没有相应的头文件,但是可以自定义. sort 函数为将整型数组从小到大排序. voidsort(int*a,i ...

  3. 【数字图像处理】模拟Matlab的imresize()写一个你自己的imresize()函数,至少应实现‘nearest’和‘bilinear’两种方法

    作业要求:模拟Matlab的imresize()写一个你自己的imresize()函数,至少应实现'nearest'和'bilinear'两种方法. 首先理论方面主要参考了一下两个网址 https:/ ...

  4. c语言sort函数排序二维数组,js 二维数组排序sort()函数

    一.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; arr.sort(function(x, y){ return x[0] – y[0]; }) ...

  5. javascript数组之数组排序:数组按照字符顺序排序,反转数组,数字排序,比值函数,随机排序,查找最大最小数组值,自制找数组最高最低值办法,排序对象数组

    1.数组排序 sort() sort() 方法以字母顺序对数组进行排序 var fruits = ["Banana", "Orange", "Appl ...

  6. 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数

    1.把数组传参给函数 可以定义一个QVector的一个数组 QVector num(10); for(int  i =0;i<10;i++) num [i] = i*i; fun(num); / ...

  7. ios 数组中的字典排序_利用数组和字典,实现按指定规则的排序

    大家好,今日我们继续讲解数组与字典解决方案,今日讲解第47讲:利用字典和数组,实现按指定规则的排序.随着字典讲解的深入,我们发现字典真的很神奇,在VBA代码中,给人以十分清爽的感觉,在这套数组与字典解 ...

  8. 数组名作为函数的参数 与数组作为函数参数的区别

    数组元素作为函数的实参时,像形参变量传递的是数组元素的值,而用数组名作为函数的实参时,向形参(数组名或指针变量)传递的是数组首元素地址.参考如下代码可以更好的理解. 1数组名作为函数的参数 //1有一 ...

  9. php 二维数组 第一个,php二维数组排序几种方法

    二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法. 有时 ...

最新文章

  1. 011:视图函数介绍
  2. 新冠最凶变种出现!突变量德尔塔两倍,专家称感染率超原毒株500%,引发全球股市震荡...
  3. 每打一通AI骚扰电话,就会被罚款7万块,这是美国国会刚刚通过的法案
  4. 板邓:【WordPress文件解读】wp-config.php
  5. python网易云_用python爬虫爬取网易云音乐
  6. 在gitee上创建自己的仓库步骤
  7. 光纤中的多种光学模式芯径_光纤光缆的21条基础知识
  8. Flask知识点查阅
  9. 【 Perl 】三种方式解决” Wide character in print “
  10. 使用animate()的时候,有时候会出现移进移出的闪动问题
  11. 【正点原子Linux连载】第六十九章 Linux 网络驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  12. C#对dll文件的反编译
  13. Picgo typora error in repo name
  14. instant-ngp
  15. MobileNet v2的Inverted Bottleneck为什么可以抵消ReLU激活函数所带来的信息损失
  16. qstock量化选股实战
  17. 深入理解文字高度和行高的设置
  18. 常用符号的Unicode表
  19. 【转载】tcpdump的移植和使用方法
  20. 给计算机老师发一封信,写给计算机老师的感谢信.doc

热门文章

  1. echarts显示纵坐标轴上的箭头
  2. python的数据可视化库_数据可视化库--Matplotlib
  3. Word生成图目录和表目录
  4. 数码家电进销存哪家强?我们找了市面上最受欢迎的5个软件盘一盘!
  5. 测肺活量可以用手机 SpiroSmart将音频转为风量
  6. 服务器 nvme 硬盘背板,一种兼容RSSD硬盘和NVMe硬盘的硬盘背板及方法技术
  7. FR新功能|Word报告一键导出,插件免费下载
  8. 拓嘉辰丰:拼多多网店的关注人数提升有什么作用?
  9. php 通过坐标获取省市,通过php根据地理坐标来获取国家、省份、城市,及周边数据类...
  10. 大岩量化科普:信息比率、跟踪误差是什么