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

yipeiwu_com7年前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 array_multisort函数 对数据库结果进行复杂排序

首先讲一下需求:数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序。下面将一下array_multisor...

Linux下源码包安装Swoole及基本使用操作图文详解

Linux下源码包安装Swoole及基本使用操作图文详解

本文实例讲述了Linux下源码包安装Swoole及基本使用操作。分享给大家供大家参考,具体如下: 下载Swoole PECL扩展源码包:http://pecl.php.net/pack...

详谈php中 strtr 和 str_replace 的效率问题

在网上看了一些php优化的指南,里面提到:使用strtr 函数 比 str_replace快4倍。 本着探索的精神动手验证。 代码 $string = 'abcdefg'; set_...

PHP实现统计一个数字在排序数组中出现次数的方法

本文实例讲述了PHP实现统计一个数字在排序数组中出现次数的方法。分享给大家供大家参考,具体如下: 题目 统计一个数字在排序数组中出现的次数。 题解 既然是排序数组,使用二分查找是效率最高...

通过php修改xml文档内容的方法

本文实例讲述了通过php修改xml文档内容的方法,分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下:<?php //1、创建一个DOMDocument对象。该对...