本文目录一览:
- 1、php二维数组中按某个元素的值排序
- 2、PHP一个数组要求先按值排序,如果它的值有相同,就再按键排序。
- 3、php如何按数组键值排序?
- 4、php 多维数组键值重新排序
- 5、php实现数组按指定KEY排序的方法
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程序设计有所帮助。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/160882.html