PHP实现二维数组按指定的键名排序的方法示例

yipeiwu_com6年前PHP代码库

本文实例讲述了PHP实现二维数组按指定的键名排序的方法。分享给大家供大家参考,具体如下:

<?php
/*二维数组按指定的键值排序*/
function array_sort($array,$keys,$type='asc'){
  if(!isset($array) || !is_array($array) || empty($array)){
    return '';
  }
  //排序字段名,如:id
  if(!isset($keys) || trim($keys)==''){
    return '';
  }
  //排序方式,如:desc、asc
  if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){
    return '';
  }
  //定义一个数组
  $keysvalue=array();
  foreach($array as $key=>$val){
    //对排序字段值进行过滤
    $val[$keys] = str_replace('-','',$val[$keys]);
    $val[$keys] = str_replace(' ','',$val[$keys]);
    $val[$keys] = str_replace(':','',$val[$keys]);
    //将记录中指定的键名放入数组中,如:[0]=>5,[1]=>3,[2]=>6
    $keysvalue[] =$val[$keys];//排序字段,如:id     索引=》排序键名
  }
  asort($keysvalue); //按值升序排序,且保持键名与键值之间的索引关系,如:[1]=>3,[0]=>5,[2]=>6
  reset($keysvalue); //指针重新指向数组第一个
  foreach($keysvalue as $key=>$vals) {
    $keysort[] = $key;//0=>[1],1=>[0],2=>[2]
  }
  $keysvalue = array();
  $count=count($keysort);//排序记录数
  if(strtolower($type) != 'asc'){//降序
    for($i=$count-1; $i>=0; $i--) {
      $keysvalue[] = $array[$keysort[$i]];
    }
  }else{//升序
    for($i=0; $i<$count; $i++){
      $keysvalue[] = $array[$keysort[$i]];
    }
  }
  return $keysvalue;
}
$array=array(
  array('name'=>'Tom','age'=>'23','like'=>'beer'),
  array('name'=>'Trump','age'=>'50','like'=>'Food'),
  array('name'=>'Jack','age'=>'26','like'=>'Travel')
);
print_r(array_sort($array,'age'));
?>

运行结果:

Array
(
  [0] => Array
    (
      [name] => Tom
      [age] => 23
      [like] => beer
    )
  [1] => Array
    (
      [name] => Jack
      [age] => 26
      [like] => Travel
    )
  [2] => Array
    (
      [name] => Trump
      [age] => 50
      [like] => Food
    )
)

PS:这里再为大家推荐2款比较实用的相关在线排序工具供大家参考使用:

在线中英文根据首字母排序工具:
http://tools.jb51.net/aideddesign/zh_paixu

在线文本倒序翻转排序工具:
http://tools.jb51.net/aideddesign/flipped_txt

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php排序算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《php面向对象程序设计入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

php实现有序数组旋转后寻找最小值方法

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一...

PHP 使用header函数设置HTTP头的示例解析 表头

如下所示:复制代码 代码如下://定义编码  header( 'Content-Type:text/html;charset=utf-8 ');  //Atom&nb...

PHP使用PHPExcel实现批量上传到数据库的方法

PHP使用PHPExcel实现批量上传到数据库的方法

此例子只使用execel2003的.xls文档,若使用的是其他版本,可以保存格式为“Execel 97-2003 工作簿(*.xls)”即.xls文件类型即可! 功能说明:只能上传Exc...

php str_pad 函数用法简介

语法 str_pad(string,length,pad_string,pad_type) 参数 描述 string 必需。规定要填充的字符串。 length 必需。规定新字符串的长度。...

关于WordPress的SEO优化相关的一些PHP页面脚本技巧

关于WordPress的SEO优化相关的一些PHP页面脚本技巧

随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智能), 所以通过搜索引擎而来的访客很可能会从网...