當前位置:首頁 » 編程語言 » php按照鍵值排序

php按照鍵值排序

發布時間: 2022-08-06 09:56:26

1. php按照KEY排序 以及他的鍵值

$data=array(
"1"=>"4",
"2"=>"5",
"4"=>"3",
"3"=>"3",
"5"=>"2"
);
ksort($data);
echo'<pre>';
print_r($data);
/*
Array
(
[1]=>4
[2]=>5
[3]=>3
[4]=>3
[5]=>2
)
*/

以上.

2. 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
)

3. 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),其他數組(可以是二維的)

4. php 給一個一維數組(索引數組)排序的時候,如果鍵值相同

ksort()按照鍵名排序
krsort()按照鍵名逆序

5. php中和值相關的排序有哪些函數

定義和用法
arsort() 函數對關聯數組按照鍵值進行降序排序。
提示:請使用 asort() 函數對關聯數組按照鍵值進行升序排序。
提示:請使用 krsort() 函數對關聯數組按照鍵名進行降序排序。
語法
arsort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype
可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)
1 = SORT_NUMERIC - 把每一項作為數字來處理。
2 = SORT_STRING - 把每一項作為字元串來處理。
3 = SORT_LOCALE_STRING - 把每一項作為字元串來處理,基於當前區域設置(可通過 setlocale() 進行更改)。
4 = SORT_NATURAL - 把每一項作為字元串來處理,使用類似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字元串進行排序,不區分大小寫。
定義和用法
asort() 函數對關聯數組按照鍵值進行升序排序。
提示:請使用 arsort() 函數對關聯數組按照鍵值進行降序排序。
提示:請使用 ksort() 函數對關聯數組按照鍵名進行升序排序。
語法
asort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype
可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)
1 = SORT_NUMERIC - 把每一項作為數字來處理
2 = SORT_STRING - 把每一項作為字元串來處理
3 = SORT_LOCALE_STRING - 把每一項作為字元串來處理,基於當前區域設置(可通過 setlocale() 進行更改)
4 = SORT_NATURAL - 把每一項作為字元串來處理,使用類似 natsort() 的自然排序
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字元串進行排序,不區分大小寫

6. 在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_rece -- 用回調函數迭代地將數組簡化為單一的值
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 -- 使用用戶自定義的比較函數對數組中的值進行排序

7. php如何根據數組中的鍵值進行排序

$newArr=array();
for($j=0;$j<count($arr);$j++){
$newArr[]=$arr[$j]['flag']
}
array_multisort($newArr,$arr);

print_r($arr)

8. php根據json其中的一個鍵值大小重新排序

在php對json直接操作成本太高,所以應該將json先轉化為數組,對數組排序就很好弄了,具體操作如下:
//先將json轉化為數組:
$people =json_decode($people,true);
//排序方法
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){
if(is_array($arrays)){
foreach ($arrays as $array){
if(is_array($array)){
$key_arrays[] = $array[$sort_key];
}else{
return false;
}
}
}else{
return false;
}
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
return $arrays;
}
//測試效果
$person = array(
array('num'=>1,'sex'=>'1'),
array('num'=>2,'sex'=>'0'),
array('num'=>3,'sex'=>'1'),
array('num'=>4,'sex'=>'1'),
array('num'=>5,'sex'=>'0'),
array('num'=>6,'sex'=>'0'),
array('num'=>7,'sex'=>'0')
);

var_mp($person);

$person = my_sort($person,'num',SORT_ASC,SORT_STRING);

var_mp($person);

$person = my_sort($person,'sex');

var_mp($person);

9. 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');

熱點內容
tampermonkey腳本 發布:2025-01-22 18:53:17 瀏覽:116
windows7共享文件夾 發布:2025-01-22 18:53:17 瀏覽:478
如何調節安卓手機的內存 發布:2025-01-22 18:49:30 瀏覽:638
佳能相機存儲卡怎麼取消 發布:2025-01-22 18:40:59 瀏覽:568
天貓寶貝上傳 發布:2025-01-22 18:35:09 瀏覽:544
ipad如何登錄金鏟鏟安卓賬號 發布:2025-01-22 18:32:09 瀏覽:319
加密溝通 發布:2025-01-22 18:31:22 瀏覽:555
win7ftp用戶名和密碼設置 發布:2025-01-22 17:46:48 瀏覽:221
三表聯查的sql語句 發布:2025-01-22 17:27:13 瀏覽:418
安卓怎麼解壓分卷壓縮 發布:2025-01-22 17:24:59 瀏覽:721