成都创新互联网站制作重庆分公司

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中怎么根据二维数组中的子数组的某个元素进行排序

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

$date = array_column($arr, '0');

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

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

array_multisort($date,SORT_ASC,$arr);

如何对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二维数据排序,php一维数组排序
标题网址:http://cxhlcq.com/article/dsiejpj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部