[請益] PHP陣列排序的問題

看板PHP作者 (nick)時間17年前 (2009/01/23 17:28), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
<?php $a = array ("H053038844556001", "H033048844556002", "H153038844599001", "H133048844556003"); ?> 陣列如上所示,陣列值意義如下: H0 5303 8844556 001 1.H0表一般化合物,H1表毒化物 2.5030表實驗室的代碼 3.8844556表藥品的ID 4.001表示每種藥品的流水號 如果用sort($a)排序,他會變成一般化合物一類,毒化物一類這樣排序。但是小弟想 從陣列數值的第2碼開始做排序(就是依照實驗室代碼做排序),請問PHP有這樣的函 式嗎?或是有比較好的排序法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.217.215

小弟剛剛去看了usort()的範例,簡單的說就是創造一個函式, 讓陣列照函式的方法進行排序,可是我不太懂那個範例的函式 在幹嘛用的Orz ------------------------------------------------------ 附上範例程式碼: <?php function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } $a = array(3, 2, 5, 6, 1); usort($a, "cmp"); foreach ($a as $key => $value) { echo "$key: $value\n"; } ?> Output: 0: 1 1: 2 2: 3 3: 5 4: 6 ※ 編輯: nick343401 來自: 219.68.217.215 (01/23 21:59)

01/23 22:04, , 2F
我的話,會把陣列資料存成 5503 H0 5503 8844556 001
01/23 22:04, 2F

01/23 22:04, , 3F
就是把實驗室代碼放到前面, 然後就可以用 PHP 內建的
01/23 22:04, 3F

01/23 22:04, , 4F
function 排序, 速度快, 顯示的時候, 再拿掉前四碼.
01/23 22:04, 4F
文章代碼(AID): #19UOsxzM (PHP)
文章代碼(AID): #19UOsxzM (PHP)