PHP二维数组排序简单实现方法

yipeiwu_com6年前PHP代码库

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

function multi_compare($a, $b)
{
  $val_arr = array(
      'gold'=>'asc',
      'silver'=>'desc'//还可以增加额外的排序条件
  );
  foreach($val_arr as $key => $val){
    if($a[$key] == $b[$key]){
      continue;
    }
    return (($val == 'desc')?-1:1) * (($a[$key] < $b[$key]) ? -1 : 1);
  }
  return 0;
}
$arr = array(
  array('gold'=>1, 'silver'=>2),
  array('gold'=>8, 'silver'=>10),
  array('gold'=>8, 'silver'=>8),
  array('gold'=>2, 'silver'=>1),
);
uasort($arr, 'multi_compare');
print_r($arr);

运行结果如下:

Array
(
  [0] => Array
    (
      [gold] => 1
      [silver] => 2
    )
  [3] => Array
    (
      [gold] => 2
      [silver] => 1
    )
  [1] => Array
    (
      [gold] => 8
      [silver] => 10
    )
  [2] => Array
    (
      [gold] => 8
      [silver] => 8
    )
)

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php排序算法总结》、《PHP基本语法入门教程》、《PHP错误与异常处理方法总结》及《php常用函数与技巧总结

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

相关文章

PHP实现的简单组词算法示例

本文实例讲述了PHP实现的简单组词算法。分享给大家供大家参考,具体如下: <?php //组词算法 function diyWords($arr,$m){ $res...

设置php页面编码的两种方法示例介绍

1:输出meta标签: 1、在php mvc的控制器里面或php页面echo '<meta http-equiv="content-type" content="text/html...

更改localhost为其他名字的方法

ctrl + r => 输入drivers回车 => etc/hosts , 用记事本打开它,在 127.0.0.1 localhost 下面增加一行, 127.0.0.1...

Discuz! Passport 通行证整合

Discuz! Passport 通行证整合

解决办法: 第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为 第二步: 删除dz安装目录/forumdata/cache/cache_settings.php第三...

PHP多维数组排序array详解

PHP数组Array按字段排序 /** * Sort array by filed and type, common utility method. * @param...