成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php二維數(shù)據(jù)排序,php二維數(shù)據(jù)排序方法

thinkPHP二維數(shù)組排序

從兩個不同的表中獲取各自的4條數(shù)據(jù),然后整合(array_merge)成一個數(shù)組,再根據(jù)數(shù)據(jù)的創(chuàng)建時間降序排序取前4條。

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都做網(wǎng)站、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元滑縣做網(wǎng)站,已為上家服務,為滑縣各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

遇到這個要求的時候就不是 ORDER BY 能解決的問題了。因此翻看 PHP 手冊查找到了如下方法,做此筆記。

廢話少說,奉上代碼,清單如下:

[php] view plain copy

?php

/**

* 二維數(shù)組根據(jù)某個字段排序

* 功能:按照用戶的年齡倒序排序

* @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);

/*

輸出結(jié)果:

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二維數(shù)組根據(jù)第二維某鍵值去重和排序

1 需要排序的數(shù)組如下:

$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 排序的函數(shù):

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 調(diào)用方式:

arr_sort($array,'price');

PHP里switch里面怎樣增加默認的二維數(shù)組排序,就是直接輸出二維數(shù)組里面定義的順序

您好,這樣:

?php

$data = array();

$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);

// 取得列的列表

foreach ($data as $key = $row)

{

$volume[$key] = $row['volume'];

$edition[$key] = $row['edition'];

}

$ret = arraySort($data, 'volume', 'desc');

print_r($ret);

/**

* @desc arraySort php二維數(shù)組排序 按照指定的key 對數(shù)組進行排序

* @param array $arr 將要排序的數(shù)組

* @param string $keys 指定排序的key

* @param string $type 排序類型 asc | desc

* @return array

*/

function arraySort($arr, $keys, $type = 'asc') {

$keysvalue = $new_array = array();

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

$keysvalue[$k] = $v[$keys];

}

$type == 'asc' ? asort($keysvalue) : arsort($keysvalue);

reset($keysvalue);

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

$new_array[$k] = $arr[$k];

}

return $new_array;

}

?

這個自定義函數(shù)與系統(tǒng)函數(shù)的一個區(qū)別就是:自定義函數(shù)只支持針對某一個key的排序,如果要支持多個key的排序需要執(zhí)行多次; 而系統(tǒng)函數(shù)array_multisort可以一次性對多個key且可以指定多個排序規(guī)則,系統(tǒng)函數(shù)還是相當強大的,推薦使用系統(tǒng)函數(shù),畢竟是C底層實現(xiàn)的,這里只是舉例說明如果通過自定義函數(shù)來對數(shù)組進行排序,當然這個自定義函數(shù)也可以繼續(xù)擴展來支持更多的排序規(guī)則。在取排名、排行榜、成績等場景中用到的還是非常多的。

php二維數(shù)組中按某個元素的值排序

//提供一個方法

class?lib_BaseUtils{

static?$s_field;

static?$s_sc;

/**

?*?php?二維數(shù)組按鍵值排序

?*?@param?array?$a?需要排序的數(shù)組

?*?@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;

}

//排序回調(diào)方法?請勿刪除

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;

}?

}

}

}

調(diào)用方法

lib_BaseUtils::array_sort($lists, 'app_down','desc');

php 二維數(shù)組排序問題 某字段按照自定義規(guī)則排序

復雜的數(shù)組排序可以用自定義的排序規(guī)則

?php

$arr?=?array(

0?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'語文',?'tag'?=?'期中考試',?'成績'?=?'142'),

1?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'數(shù)學',?'tag'?=?'期中考試',?'成績'?=?'98'),

2?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'英語',?'tag'?=?'期中考試',?'成績'?=?'118'),

3?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'化學',?'tag'?=?'期中考試',?'成績'?=?'78'),

4?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'物理',?'tag'?=?'期中考試',?'成績'?=?'132'),

5?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'生物',?'tag'?=?'期中考試',?'成績'?=?'115'),

6?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'地理',?'tag'?=?'期中考試',?'成績'?=?'99'),

7?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'歷史',?'tag'?=?'期中考試',?'成績'?=?'88'),

8?=?array('id'?=?'2014347856',?'name'?=?'張?zhí)?,?'科目'?=?'政治',?'tag'?=?'期中考試',?'成績'?=?'125'),

9?=?array('id'?=?'2014347880',?'name'?=?'李鳴',?'科目'?=?'語文',?'tag'?=?'期中考試',?'成績'?=?'79'),

10?=?array('id'?=?'2014347880',?'name'?=?'李鳴',?'科目'?=?'數(shù)學',?'tag'?=?'期中考試',?'成績'?=?'148'),

11?=?array('id'?=?'2014347880',?'name'?=?'李鳴',?'科目'?=?'英語',?'tag'?=?'期中考試',?'成績'?=?'142'),

);

/*自定義排序*/

function?userSort($a,?$b)

{

if?($a['name']?==?$b['name'])?{

/*排序科目*/

$subjectSort?=?array('語文',?'數(shù)學',?'英語',?'歷史',?'政治',?'地理',?'物理',?'化學',?'生物');

foreach?($subjectSort?as?$index?=?$item)?{

if?($a['科目']?==?$item)?{

$tmp1?=?$index;

}

if?($b['科目']?==?$item)?{

$tmp2?=?$index;

}

}

return?$tmp1??$tmp2???-1?:?1;

}?else?{

/*排序name*/

$tmpArr?=?[$a['name'],?$b['name']];

sort($tmpArr);

return?$a['name']?==?$tmpArr[0]???-1?:?1;

}

}

usort($arr,?'userSort');

var_dump($arr);

PHP中怎么根據(jù)二維數(shù)組中的子數(shù)組的某個元素進行排序

//先用array_column 多維數(shù)組按照縱向(列)取出

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

//上面得到的結(jié)果:array()

//再用array_multisort 結(jié)合array_column得到的結(jié)果對$arr進行排序

array_multisort($date,SORT_ASC,$arr);

網(wǎng)站名稱:php二維數(shù)據(jù)排序,php二維數(shù)據(jù)排序方法
URL網(wǎng)址:http://jinyejixie.com/article24/dsedije.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、虛擬主機、手機網(wǎng)站建設、電子商務、搜索引擎優(yōu)化網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
遂平县| 房山区| 宽甸| 北川| 故城县| 齐齐哈尔市| 梁平县| 黑河市| 文水县| 海城市| 杭锦旗| 湟中县| 仙居县| 绥江县| 宜昌市| 巩留县| 鹤山市| 家居| 湖南省| 容城县| 洛隆县| 乌拉特前旗| 温州市| 珠海市| 桃园市| 巴彦淖尔市| 沁阳市| 周口市| 剑河县| 靖边县| 陇南市| 庆阳市| 九龙城区| 科尔| 平顺县| 龙海市| 赤峰市| 西和县| 通河县| 天峻县| 宁国市|