php的二维数组排序,php二维数组按某个键值排序

本文目录一览:

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

1 需要排序的数组如下:

$array = array(

array(‘name’=’手机’,’brand’=’诺基亚’,’price’=1050),

array(‘name’=’笔记本电脑’,’brand’=’lenovo’,’price’=4300),

array(‘name’=’剃须刀’,’brand’=’飞利浦’,’price’=3100),

array(‘name’=’跑步机’,’brand’=’三和松石’,’price’=4900),

array(‘name’=’手表’,’brand’=’卡西欧’,’price’=960),

array(‘name’=’液晶电视’,’brand’=’索尼’,’price’=6299),

array(‘name’=’激光打印机’,’brand’=’惠普’,’price’=1200)

);

2 排序的函数:

function arr_sort($array,$key,$order=”asc”){//asc是升序 desc是降序

$arr_nums=$arr=array();

foreach($array as $k=$v){

$arr_nums[$k]=$v[$key];

}

if($order==’asc’){

asort($arr_nums);

}else{

arsort($arr_nums);

}

foreach($arr_nums as $k=$v){

$arr[$k]=$array[$k];

}

return $arr;

}

3 调用方式:

arr_sort($array,’price’);

php二维数组自定义排序

function pSort($arr)

{

$TimeSort = array();

foreach ($arr as $key = $value) {

$TimeSort[$key] = $value[‘age’];

}

asort($TimeSort);

$data = array();

foreach ($TimeSort as $key = $value) {

$data[] = $arr[$key];

}

$i = 0;

foreach ($arr as $k = $v) {

$arr[$k] = $data[$i];

$i++;

}

return $arr;

}

主要部分,你也可以考虑用那个多为数组排序的那个函数,上面这个是我前几天自己写的,不知道在你这能用不

php循环的二维数组如何排序

$num=$arr[$a]-18按$num排序其实就是按$arr[$a]来排,只需在循环前对$arr排序就行了。出来的结果自然是按 $num排序

?php

$arr=array(30,15,40,38);

rsort($arr);

for($a=0; $a4; $a++){

$num=$arr[$a]-18;

if($num0){

$arr_1=array(array(“$arr[$a]”,”$num”));

$num_1 = array();

foreach ($arr_1 as $arr_2) {

$num_1[] = $arr_2[1];

}

array_multisort( $num_1,SORT_DESC , $arr_1);

print_r($arr_1);

}

}

?

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

thinkPHP二维数组排序

从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。

遇到这个要求的时候就不是 ORDER BY 能解决的问题了。因此翻看 PHP 手册查找到了如下方法,做此笔记。

废话少说,奉上代码,清单如下:

[php] view plain copy

?php

/**

* 二维数组根据某个字段排序

* 功能:按照用户的年龄倒序排序

* @author ruxing.li

*/

header(‘Content-Type:text/html;Charset=utf-8’);

$arrUsers = array(

array(

‘id’ = 1,

‘name’ = ‘张三’,

‘age’ = 25,

),

array(

‘id’ = 2,

‘name’ = ‘李四’,

‘age’ = 23,

),

array(

‘id’ = 3,

‘name’ = ‘王五’,

‘age’ = 40,

),

array(

‘id’ = 4,

‘name’ = ‘赵六’,

‘age’ = 31,

),

array(

‘id’ = 5,

‘name’ = ‘黄七’,

‘age’ = 20,

),

);

$sort = array(

‘direction’ = ‘SORT_DESC’, //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序

‘field’ = ‘age’, //排序字段

);

$arrSort = array();

foreach($arrUsers AS $uniqid = $row){

foreach($row AS $key=$value){

$arrSort[$key][$uniqid] = $value;

}

}

if($sort[‘direction’]){

array_multisort($arrSort[$sort[‘field’]], constant($sort[‘direction’]), $arrUsers);

}

var_dump($arrUsers);

/*

输出结果:

array (size=5)

0 =

array (size=3)

‘id’ = int 5

‘name’ = string ‘黄七’ (length=6)

‘age’ = int 20

1 =

array (size=3)

‘id’ = int 2

‘name’ = string ‘李四’ (length=6)

‘age’ = int 23

2 =

array (size=3)

‘id’ = int 1

‘name’ = string ‘张三’ (length=6)

‘age’ = int 25

3 =

array (size=3)

‘id’ = int 4

‘name’ = string ‘赵六’ (length=6)

‘age’ = int 31

4 =

array (size=3)

‘id’ = int 3

‘name’ = string ‘王五’ (length=6)

‘age’ = int 40

*/

PHP中怎么根据二维数组中的子数组的某个元素进行排序

//先用array_column 多维数组按照纵向(列)取出

$date = array_column($arr, ‘0’);

//上面得到的结果:array()

//再用array_multisort 结合array_column得到的结果对$arr进行排序

array_multisort($date,SORT_ASC,$arr);

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/243588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:57
下一篇 2024-12-12 12:57

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • Java创建一个有10万个元素的数组

    本文将从以下方面对Java创建一个有10万个元素的数组进行详细阐述: 一、基本介绍 Java是一种面向对象的编程语言,其强大的数组功能可以支持创建大规模的多维数组以及各种复杂的数据…

    编程 2025-04-28
  • Python数组随机分组用法介绍

    Python数组随机分组是一个在数据分析与处理中常用的技术,它可以将一个大的数据集分成若干组,以便于进行处理和分析。本文将从多个方面对Python数组随机分组进行详细的阐述,包括使…

    编程 2025-04-28
  • Python数组索引位置用法介绍

    Python是一门多用途的编程语言,它有着非常强大的数据处理能力。数组是其中一个非常重要的数据类型之一。Python支持多种方式来操作数组的索引位置,我们可以从以下几个方面对Pyt…

    编程 2025-04-28

发表回复

登录后才能评论