PHP實現1 2 2A 3A 4類似這種排序需求

2021-10-01 18:21:21 字數 1044 閱讀 9570

需求如下,客戶輸入標題

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 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。...