A. php 怎麼根據數組中其中的一個值排序
sort() - 以升序對數組排序
rsort() - 以降序對數組排序
asort() - 根據值,以升序對關聯數組進行排序
ksort() - 根據鍵,以升序對關聯數組進行排序
arsort() - 根據值,以降序對關聯數組進行排序
krsort() - 根據鍵,以降序對關聯數組進行排序
B. php如何按數組鍵值排序
$arr=[
array(
'name'=>'小壞龍',
'age'=>28
),
array(
'name'=>'小壞龍2',
'age'=>14
),
array(
'name'=>'小壞龍3',
'age'=>59
),
array(
'name'=>'小壞龍4',
'age'=>23
),
array(
'name'=>'小壞龍5',
'age'=>23
),
array(
'name'=>'小壞龍6',
'age'=>21
),
];
array_multisort(array_column($arr,'age'),SORT_DESC,$arr);
print_r($arr);
其中 array_column(數組,數組中的某個鍵值) 從多維數組中取出某個鍵值的一列 返回一個一維數組;
array_multisort(數組(一維數組),排序方式(SOTR_ASC,SOTR_DESC),其他數組(可以是二維的)
C. php用系統函數將一個數組按另一個數組的值進行排序
rsort()定義和用法
rsort() 函數對數組的元素按照鍵值進行逆向排序。與 arsort() 的功能基本相同。
注釋:該函數為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。
如果成功則返回 TRUE,否則返回 FALSE。
可選的第二個參數包含另外的排序標志。
語法
rsort(array,sorttype)參數 描述
array 必需。輸入的數組。
sorttype 可選。規定如何排列數組的值。可能的值:
SORT_REGULAR - 默認。以它們原來的類型進行處理(不改變類型)。
SORT_NUMERIC - 把值作為數字來處理
SORT_STRING - 把值作為字元串來處理
SORT_LOCALE_STRING - 把值作為字元串來處理,基於本地設置*。
*:該值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系統的區域設置,可以用 setlocale() 來改變。自 PHP 6 起,必須用 i18n_loc_set_default() 函數。
例子
復制代碼 代碼如下:
<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
rsort($my_array);
print_r($my_array);
?>
輸出:
Array
(
[0] => Horse
[1] => Dog
[2] => Cat
)
D. 關於php二維數組中按某個元素的值排序
你可以使用usort這個函數進行對$a['list']進行處理
usort($a['list'],function($a,$b){
if($a['app_down']==$b['app_down'])return0;
return$a['app_down']>$b['app_down']?1:-1;
//如果發現結果是升序,1和-1對換下位置,記不太清了
});
E. php二維數組中按某個元素的值排序
//提供一個方法
classlib_BaseUtils{
static$s_field;
static$s_sc;
/**
*php二維數組按鍵值排序
*@paramarray$a需要排序的數組
*@paramstring$sort排序的鍵值
*@paramstring$d默認ASC,帶上參後為DESC
*@returnboolean
*/
staticfunctionarray_sort(&$a,$sort,$d=''){
self::$s_field=$sort;
self::$s_sc=$d;
usort($a,array("lib_BaseUtils","array_sort_callback"));
return$a;
}
//排序回調方法請勿刪除
staticfunctionarray_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])):
returnstrcmp($s_a[$field],$s_b[$field]);
break;
default:
if($s_a[$field]==$s_b[$field]){
return0;
}else{
return$s_a[$field]>$s_b[$field]?-1:1;
}
}
}
}
調用方法
lib_BaseUtils::array_sort($lists, 'app_down','desc');
F. PHP中怎麼根據二維數組中的子數組的某個元素進行排序
//先用array_column 多維數組按照縱向(列)取出
$date = array_column($arr, '0');
//上面得到的結果:array()
//再用array_multisort 結合array_column得到的結果對$arr進行排序
array_multisort($date,SORT_ASC,$arr);