本文目錄一覽:
- 1、php數組排序有很多的方法,哪位可以詳細的分解一二嗎,如用函數和不用函數。
- 2、php如何按數組鍵值排序?
- 3、PHP數組排序
- 4、php如何根據數組中的鍵值進行排序
- 5、php 多維數組鍵值重新排序
php數組排序有很多的方法,哪位可以詳細的分解一二嗎,如用函數和不用函數。
在php數組排序中我們通常會用到下列幾個函數。
sort() —— 以升序對數組排序,是以元素值來排序的
rsort() —– 以降序對數組排序,以元素值來排序。
asort() —– 根據值,以升序對關聯數組進行排序
ksort() —– 根據鍵,以升序對關聯數組進行排序
arsort() —- 根據值,以降序對關聯數組進行排序
krsort() —- 根據鍵,以降序對關聯數組進行排序
array_multisort()—-對多個數組或多維數組進行排序
用sort函數來做下示例吧
?php
$string=array(“Yes”,”True”,”False”);
sort($string);
print_r($string);
?
運行結果為:Array ( [0] = False [1] = True [2] = Yes )
再來看一個array_multisort的例子了,
?php
$att[] = array(‘name’ = ‘cat’, ‘number’ = 2);
$att[] = array(‘name’ = ‘dog’, ‘number’ = 1);
$att[] = array(‘name’ = ‘dgg’, ‘number’ = 6);
$att[] = array(‘name’ = ‘monkey’, ‘number’ = 2);
$att[] = array(‘name’ = ‘bear’, ‘number’ = 6);
$att[] = array(‘name’ = ‘bee’, ‘number’ = 7);
array_multisort($att,SORT_DESC,SORT_REGULAR);
print_r($att);
?
輸出結果為:
Array (
[0] = Array ( [name] = monkey [number] = 2 )
[1] = Array ( [name] = dog [number] = 1 )
[2] = Array ( [name] = dgg [number] = 6 )
[3] = Array ( [name] = cat [number] = 2 )
[4] = Array ( [name] = bee [number] = 7 )
[5] = Array ( [name] = bear [number] = 6 )
)
不用數組的來個例子了。
?php
$att[] = array(‘name’ = ‘cat’, ‘number’ = 2);
$att[] = array(‘name’ = ‘dog’, ‘number’ = 1);
$att[] = array(‘name’ = ‘dgg’, ‘number’ = 6);
$att[] = array(‘name’ = ‘monkey’, ‘number’ = 2);
$att[] = array(‘name’ = ‘bear’, ‘number’ = 6);
$att[] = array(‘name’ = ‘bee’, ‘number’ = 7);
for($i=0;$icount($att);$i++){
foreach($att as $key=$val){
if($att[$i][‘number’]$val[‘number’]){
$att[$key]=$att[$i];
$att[$i]=$val;
}
}
}
print_r($att);
?
結果:
Array (
[0] = Array ( [name] = bee [number] = 7 )
[1] = Array ( [name] = bear [number] = 6 )
[2] = Array ( [name] = dgg [number] = 6 )
[3] = Array ( [name] = cat [number] = 2 )
[4] = Array ( [name] = monkey [number] = 2 )
[5] = Array ( [name] = dog [number] = 1 )
)
當然還有更多的方法,如插入排序,選擇排序,冒泡排序,快速排序等。這些網站有很多的,如這個網站上就有:至於數組和字符串的話,主要有str_split()、explode(),preg_split()三個函數。當然還有別的方法,上面那個網我站有說到,你可以自己去找一找了。
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數組排序
php中數組自定義排序 使用 usort函數
PHP usort
$arr = array(“哈哈-默默-122″,”吸收-伏牛山-7″,”啥的-都是-12”);
usort($arr,function($v1, $v2){
//將兩個值切割
$va1=explode(‘-‘,$v1);
$va2=explode(‘-‘,$v2);
//取兩個值 的最後一段數字
$num1 = intval(array_pop($va1));
$num2 = intval(array_pop($va2));
//返回比較結果
return $num2$num1?1:($num2$num1?-1:0);
});
var_export($arr);
你看下上面排序結果是否你要的,如果反了,把return中的1和-1換一換就可以了
php如何根據數組中的鍵值進行排序
$newArr=array();
for($j=0;$jcount($arr);$j++){
$newArr[]=$arr[$j][‘flag’]
}
array_multisort($newArr,$arr);
print_r($arr)
php 多維數組鍵值重新排序
$a = array(2=array(1,2,3,4),6=array(6,2,3,5),1=array(1,4,53));
$b = array_values($a);//返回數組中的所有值,形成新的數組,建立數字索引
原創文章,作者:EODL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143473.html