需求如下,客戶輸入標題
3f
2a
1
1l
2
9d
10a
3
排序結果變成
1
1l
2
2a
3
3f
9d
10a
標題可能為純數字,也可能數字後面帶字母,首先按照數字大小排序,如果後面跟字母的話,再根據字母排序
我是這樣做的,排序嗎,首先對資料進行第一輪處理,把所有資料格式統一,首先寫乙個非常簡單的正規表示式
/^(\d+)(.*)$/
這個正則匹配兩個東西,首先是前面的數字,然後是後面的abc
這種編號
preg_match("/^(\d+)(.*)$/", '3f', $matches
)
那麼結果如下
array([
0]=>
3f [1]
=>3[
2]=> f
)
$matches[1] 的內容是我們要匹配的數字
$matches[2]的內容是後面可能會有的字母編號
首先要個每個陣列元素配置乙個權重
下一步看看是否存在字母標號
if(!
empty
($matches[2
]))}
}
後面使用這個$arrayelement['weight']
字段進行排序就可以了 php4 class,類與物件(PHP 4)
類是變數與作用於這些變數的函式的集合。使用下面的語法定義乙個類 var items 購物車中的物品 將 num 個 artnr 物品加入購物車functionadd item artnr,num 將 num 個 artnr 物品從購物車中取出functionremove item artnr,num...
php 父類Model實現
class model public function set k v public function get k 指定查詢條件 例 array cat id 3,price 5 對應sql條件為cat id 3 and price 5 param array cond return void pu...
php實現4種排序演算法
前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。...