您的位置:

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转换成拼音,然后order

by排序就可以了,有一个pinyin类,可以去网上找找看,帝国CMS里面也有,可以拷出来用。

php如何按数组键值排序?

array_change_key_case -- 返回字符串键名全为小写或大写的数组

array_chunk -- 将一个数组分割成多个

array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

array_count_values -- 统计数组中所有的值出现的次数

array_diff_assoc -- 带索引检查计算数组的差集

array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.

array_diff -- 计算数组的差集

array_fill -- 用给定的值填充数组

array_filter -- 用回调函数过滤数组中的单元

array_flip -- 交换数组中的键和值

array_intersect_assoc -- 带索引检查计算数组的交集

array_intersect -- 计算数组的交集

array_key_exists -- 检查给定的键名或索引是否存在于数组中

array_keys -- 返回数组中所有的键名

array_map -- 将回调函数作用到给定数组的单元上

array_merge_recursive -- 递归地合并两个或多个数组

array_merge -- 合并两个或多个数组

array_multisort -- 对多个数组或多维数组进行排序

array_pad -- 用值将数组填补到指定长度

array_pop -- 将数组最后一个单元弹出(出栈)

array_push -- 将一个或多个单元压入数组的末尾(入栈)

array_rand -- 从数组中随机取出一个或多个单元

array_reduce -- 用回调函数迭代地将数组简化为单一的值

array_reverse -- 返回一个单元顺序相反的数组

array_search -- 在数组中搜索给定的值,如果成功则返回相应的键名

array_shift -- 将数组开头的单元移出数组

array_slice -- 从数组中取出一段

array_splice -- 把数组中的一部分去掉并用其它值取代

array_sum -- 计算数组中所有值的和

array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.

array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

array_udiff -- Computes the difference of arrays by using a callback function for data comparison.

array_unique -- 移除数组中重复的值

array_unshift -- 在数组开头插入一个或多个单元

array_values -- 返回数组中所有的值

array_walk -- 对数组中的每个成员应用用户函数

array -- 新建一个数组

arsort -- 对数组进行逆向排序并保持索引关系

asort -- 对数组进行排序并保持索引关系

compact -- 建立一个数组,包括变量名和它们的值

count -- 统计变量中的单元数目

current -- 返回数组中的当前单元

each -- 返回数组中当前的键/值对并将数组指针向前移动一步

end -- 将数组的内部指针指向最后一个单元

extract -- 从数组中将变量导入到当前的符号表

in_array -- 检查数组中是否存在某个值

key -- 从结合数组中取得键名

krsort -- 对数组按照键名逆向排序

ksort -- 对数组按照键名排序

list -- 把数组中的值赋给一些变量

natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序

natsort -- 用“自然排序”算法对数组排序

next -- 将数组中的内部指针向前移动一位

pos -- 得到数组当前的单元

prev -- 将数组的内部指针倒回一位

range -- 建立一个包含指定范围单元的数组

reset -- 将数组的内部指针指向第一个单元

rsort -- 对数组逆向排序

shuffle -- 将数组打乱

sizeof -- count() 的别名

sort -- 对数组排序

uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

uksort -- 使用用户自定义的比较函数对数组中的键名进行排序

usort -- 使用用户自定义的比较函数对数组中的值进行排序

php 多维数组键值重新排序

$a = array(2=array(1,2,3,4),6=array(6,2,3,5),1=array(1,4,53));

$b = array_values($a);//返回数组中的所有值,形成新的数组,建立数字索引

php实现数组按指定KEY排序的方法

本文实例讲述了php实现数组按指定KEY排序的方法。分享给大家供大家参考。具体实现方法如下:

function

array_sort($arr,$keys,$orderby='asc'){

$keysvalue

=

$new_array

=

array();

foreach

($arr

as

$k=$v){

$keysvalue[$k]

=

$v[$keys];

}

if($orderby==

'asc'){

asort($keysvalue);

}else{

arsort($keysvalue);

}

reset($keysvalue);

foreach

($keysvalue

as

$k=$v){

$new_array[]

=

$arr[$k];

}

return

$new_array;

}

希望本文所述对大家的php程序设计有所帮助。