您的位置:

php二维数组按某个键名排序,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

$array[] = array('id'=1,'price'=50);

$array[] = array('id'=2,'price'=70);

$array[] = array('id'=3,'price'=30);

$array[] = array('id'=4,'price'=20);

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

$id[$key] = $value['id'];

$price[$key] = $value['price'];

}

array_multisort($price,SORT_NUMERIC,SORT_DESC,$id,SORT_STRING,SORT_ASC,$array);

echo 'pre';

print_r($array);

echo '/pre';

?

运行结果:

Array

(

[0] = Array

(

[id] = 2

[price] = 70

)

[1] = Array

(

[id] = 1

[price] = 50

)

[2] = Array

(

[id] = 3

[price] = 30

)

[3] = Array

(

[id] = 4

[price] = 20

)

)

PHP中如何对二维数组按某个键值进行排序

你可以使用usort这个函数进行对$a['list']进行处理

usort($a['list'],function($a,$b){ if($a['app_down'] == $b['app_down'])return 0; return $a['app_down']$b['app_down'] ? 1 : -1; //如果发现结果是升序,1和-1对换下位置,记不太清了});