首页 > 后端开发 > 正文

如何对PHP二维数组根据第二维某键值去重和排序

2024-07-15 16:05:48 | 我爱编程网

如何对PHP二维数组根据第二维某键值去重和排序很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

如何对PHP二维数组根据第二维某键值去重和排序

如何对PHP二维数组根据第二维某键值去重和排序

去重的:

/**
 * 二维数组按照指定键值去重
 * @param $arr 需要去重的二维数组
 * @param $key 需要去重所根据的索引
 * @return mixed
 */
function assoc_unique($arr, $key)
{
    $tmp_arr = array();
    foreach($arr as $k => $v) {
        if(in_array($v[$key],$tmp_arr)) {  //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
            unset($arr[$k]);
        } else {
            $tmp_arr[] = $v[$key];
        }
    }
    sort($arr); //sort函数对数组进行排序
    return $arr;
}

如何对PHP二维数组根据第二维某键值去重和排序

php二维数组中按某个元素的值排序

//提供一个方法
class lib_BaseUtils{
        static $s_field;
static $s_sc;
/**
 * php 二维数组按键值排序
 * @param array $a 需要排序的数组
 * @param string $sort 排序的键值
 * @param string $d 默认ASC,带上参后为DESC
 * @return boolean
 */
static function array_sort(&$a, $sort, $d='') {
self::$s_field = $sort;
self::$s_sc = $d;
usort($a, array("lib_BaseUtils","array_sort_callback"));
return $a;
}
//排序回调方法 请勿删除
static function array_sort_callback($a, $b) {
$s_a = self::$s_sc ? $b : $a;
$s_b = self::$s_sc ? $a : $b;
$field = self::$s_field;
switch (true){
    case (is_string($s_a[$field]) && is_string($s_b[$field])):
        return strcmp($s_a[$field], $s_b[$field]);
        break;
    default:
        if($s_a[$field]== $s_b[$field]){
            return 0;
        }else{
            return $s_a[$field]>$s_b[$field]?-1:1;
        } 
}
}
}

调用方法 我爱编程网

lib_BaseUtils::array_sort($lists, 'app_down','desc');

如何对PHP二维数组根据第二维某键值去重和排序

php 二维数组的排序问题

我爱编程网(https://www.52biancheng.com)小编还为大家带来php 二维数组的排序问题的相关内容。

对二维数组排序,得用到array_multisort()
下面是从php手册摘出来的例子.具体请根据你的问题查阅手册.
=========
数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

本例中将把 volume 降序排列,把 edition 升序排列。

现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。

<?php
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}

// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

数据集合现在排好序了,结果如下:

volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7

以上就是我爱编程网为大家带来的如何对PHP二维数组根据第二维某键值去重和排序,希望能帮助到大家!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何对PHP二维数组根据第二维某键值去重和排序”相关推荐
php三维数组arrry如何去重复?
php三维数组arrry如何去重复?

用自己的语言说出php中数组的常用函数和用法?array_filter:过滤数组中的无效元素,可以使用回调函数过滤array_map:使用回调函数依次处理所有元素implode:将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组sort/ksort:将数组进行升序排序array_unique:将数组元素去重array

2024-07-15 10:46:59
PHP的问题,编写一个程序对三个数按由小到大的顺序排列(php怎样根据数组的长度来排序?)
PHP的问题,编写一个程序对三个数按由小到大的顺序排列(php怎样根据数组的长度来排序?)

PHP的问题,编写一个程序对三个数按由小到大的顺序排列以下是一个简单的PHP程序,用于对三个数进行由小到大的排序:php&lt;?phpfunctionsortNumbers($a,$b,$c){if($a&gt;$b){$temp=$a;$a=$b;$b=$temp;}if($a&gt;$c){$temp=$a;$a=$c;$c=$temp;

2024-07-14 05:43:32
计算机二级考试的分值如何分配的?
计算机二级考试的分值如何分配的?

计算机二级考试的分值如何分配的?计算机二级考试分值分配分为两类,语言及数据库类科目选择题占40分,操作题占60分,但办公类WPS office及MS Office两个科目分值分配为选择题占20分,操作题占80分,计算机二级三类9科均使用百分制。二级MSOffice高级应用:单项选择题20分(含公共基础知识部分10分);文字处理题30分;电子表格题30分;演示文稿题20分。二级C语言程

2024-01-18 02:45:53
[php]如何设定一个函数的某参数可有可无?
[php]如何设定一个函数的某参数可有可无?

用PHP定义一个函数,返回3个参数中的最大值?可以使用以下代码定义一个函数,返回3个参数中的最大值:functionfindMax($num1,$num2,$num3){$max=$num1;if($num2&gt;$max){$max=$num2;}if($num3&gt;$max){$max=$num3;}return$max;}该函数接受3个

2024-07-14 18:53:58
php函数 用自己的语言说出php中数组的常用函数和用法?
php函数 用自己的语言说出php中数组的常用函数和用法?

用自己的语言说出php中数组的常用函数和用法?array_filter:过滤数组中的无效元素,可以使用回调函数过滤array_map:使用回调函数依次处理所有元素implode:将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组sort/ksort:将数组进行升序排序array_unique:将数组元素去重array

2024-07-13 13:08:22
如何用python编程求解二元一次方程组。如x+y=3;x-y=1
如何用python编程求解二元一次方程组。如x+y=3;x-y=1

如何用python编程求解二元一次方程组。如x+y=3;x-y=1利用numpy很简单。可以利用pip安装pip install numpy然后(以你的方程为例),python下Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.5

2023-12-18 09:09:14
php函数大全 PHP处理数组常用的几个函数
php函数大全 PHP处理数组常用的几个函数

php随机数函数在PHP中,随机数(RandomNumber)是指一组伪随机数(Pseudo-randomNumber),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。以下是一些PHP中常用的生成随机数的函数:1、rand()函数:生成一个指定范围内的随机整数。例如

2024-07-14 08:20:17
python自动生成插画-python怎么根据数据生成图像
python自动生成插画-python怎么根据数据生成图像

python自动生成插画-python怎么根据数据生成图像如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:fromPILimportImage,ImageDraw,ImageFont#创建一个空白的画布,大小为800x

2023-12-13 15:46:29