<?php function _key_compare($val1, $val2) { return $val1 > $val2 ? 1 : ($val1 < $val2 ? -1 : 0); } function _array_compare($arr1, $arr2) { $keys = ['a','b','c']; //需要比较的键 foreach ($keys as $key) { $compare_val = _key_compare($arr1[$key], $arr2[$key]); if( $compare_val != 0) { return $compare_val; } } return 0; } $array = [ [ 'a' => 'abcdef', 'b' => '123456', 'c' => 'TTYYUU', ], [ 'a' => 'bcedfg', 'b' => '123456', 'c' => 'YYUUKK', ], [ 'a' => 'abcdef', 'b' => '789100', 'c' => 'UUKKOO', ] ]; usort($array, '_array_campare'); var_dump($array); //----------------------------------------------------------------- //封装成类 $array = [ [ 'a' => 'abcdef', 'b' => '123456', 'c' => 'TTYYUU', ], [ 'a' => 'bcedfg', 'b' => '123456', 'c' => 'YYUUKK', ], [ 'a' => 'abcdef', 'b' => '789100', 'c' => 'UUKKOO', ], ]; class ArraySort { /** * 排序的key * @var array */ protected $keys = []; /** * 构造函数 * @param array|string $keys 需要比较的键 */ public function __construct($keys) { if (is_string($keys)) { $this->keys[] = $keys; } else { $this->keys = $keys; } } /** * 执行排序 * * @param array $array * @return */ public function sort($array) { var_dump($array); usort($array, [$this, "_array_compare"]); return $array; } /** * 比较两个值的大小,字符串or数字 * * @param string|integer $val1 [description] * @param string|integer $val2 [description] * @return integer */ private function _key_compare($val1, $val2) { return $val1 > $val2 ? 1 : ($val1 < $val2 ? -1 : 0); } /** * 比较两个数组 * * @param array $arr1 [description] * @param array $arr2 [description] * @return integer */ private function _array_compare($arr1, $arr2) { foreach ($this->keys as $key) { $compare_val = $this->_key_compare($arr1[$key], $arr2[$key]); if ($compare_val != 0) { return $compare_val; } } return 0; } } $arraySort = new ArraySort(['a', 'b', 'c']); $array = $arraySort->sort($array); var_dump($array);
相关推荐
总结来说,PHP数组排序函数为开发者提供了灵活多样的选择,通过掌握这些函数及其参数的不同组合,可以实现复杂且高效的数据排序操作。对于需要按照特定逻辑排序的场景,我们可以编写自定义比较函数,通过u参数来传递...
### PHP数组排序及运用场景详解 #### 一、PHP数组排序方法详解 PHP 提供了丰富的数组处理功能,其中数组排序是开发中最常用的功能之一。本文将详细介绍 PHP 中的数组排序函数及其应用场景。 ##### 1. `sort()` -...
#### 三、PHP数组排序的基本原理 排序算法是计算机科学中的基础部分,通常分为多种类型,如冒泡排序、选择排序、插入排序、快速排序等。本文介绍的是一种简单的冒泡排序算法。 - **冒泡排序**:它通过重复遍历要...
PHP数组排序之sort、asort与ksort用法实例 PHP数组排序是PHP编程中的一种常见操作,排序算法是计算机科学中的一种基本算法。PHP提供了多种排序函数,如sort、asort、ksort等,这篇文章将通过插入排序、选择排序、...
在PHP编程语言中,排序是处理数组数据时的常见任务,尤其在组织和展示信息时。PHP提供了多种内置函数来帮助开发人员对数组进行不同方式的排序,包括简单排序、根据关键字排序以及根据值排序。 1. **简单排序**: -...
php 多维数组排序,应用php的多维数组排序函数
### PHP中的数组排序算法 在PHP编程中,对数组进行排序是常见的操作之一。本文将详细介绍几种常用的排序算法实现,并通过具体的PHP代码示例来帮助理解这些算法的工作原理。 #### 插入排序(Insertion Sort) 插入...
首先,我们要理解PHP数组排序的核心函数`array_multisort()`。该函数能够对多个数组或多维数组进行排序,通过它可以实现复杂条件下的排序操作。`array_multisort()`函数接受一个或多个数组作为参数,并且可以接受...
常用的PHP数组排序函数 •sort() – 以升序对数组排序 •rsort() – 以降序对数组排序 •asort() – 根据值,以升序对关联数组进行排序 •ksort() – 根据键,以升序对关联数组进行排序 •arsort() – ...
#### 二、PHP中多维数组排序的实现方法 本例中,我们希望对一个多维数组按照其中一个字段(本例为`'norder'`)的值进行降序排序。具体步骤如下: 1. **初始化数组**: ```php $arr = array( array('name' => '...
PHP 数组排序 数组中的元素可以按字母或数字顺序进行降序或升序排列。 PHP – 数组排序函数 在本章中,我们将一一介绍下列 PHP 数组排序函数: sort() – 对数组进行升序排列 rsort() – 对数组进行降序排列 a...
本文实例讲解了PHP数组排序中sort、asort与ksort的用法,供大家参考借鉴之用。具体实例如下所示: <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之前的...
PHP数组排序是PHP开发中处理数据时常常会用到的功能,它能帮助开发者以特定的顺序整理数组元素。在本文中,我们主要通过几种不同的排序函数来了解PHP数组排序的方法。 首先,我们需要了解如何使用PHP创建数组。PHP...
在处理PHP多维数组排序问题时,特别是根据二维数组中某个特定项进行排序的情况,有几种方法可以实现。其中一种有效的方法是使用PHP内置的array_multisort函数。该函数可以对多个数组或数组中的多个列进行排序,适用...
PHP选择排序法实现数组排序实例分析 PHP 选择排序法是常用的数组排序算法之一,它通过比较数组中的元素,选择合适的元素进行交换,直到整个数组排序完成。在 PHP 中实现选择排序法可以使用以下步骤: 1. 首先,...
对于多维数组排序,PHP提供了`usort()`、`uasort()`和`uksort()`函数,它们允许我们自定义排序规则。`usort()`用于按用户定义的比较函数对数组元素进行排序;`uasort()`则保持索引与值的关联性;而`uksort()`则是...
### PHP 二维数组排序知识点详解 #### 一、概述 在 PHP 编程中,处理数据经常需要对数组进行排序,尤其是对二维数组的排序。本文档介绍了一种使用 `array_multisort()` 函数来实现多维数组排序的方法,并通过一个...
php对二维数组按数组键值进行排序 @param array $array 要排序的数组 @param string $key 排序依据字段 @param string $order 排序方式,0为降序,1为升序