$str="L1B1,L1B2,L1B10,L1B3,L1B8,L2B1,L1B2,L3B10,L1B3,L1B4,L1B5,L1B10,L3B5,L1B2,L1B10,L1B3,L1B8,L2B1"; //字符串
$str_Array=array_unique(split(",",$str));//變為數組,去掉重復值
sort($str_Array);//按從小到大排列
for($i=0;$i<count($str_Array);$i++){
echo $str_Array[$i]."<br>";
}
///////////// 得到結果 ////////////
L1B10
L1B2
L1B3
L1B4
L1B5
L1B8
L2B1
L3B10
L3B5
但我希望得到的結果是:
L1B2
L1B3
L1B4
L1B5
L1B8
L1B10
L2B1
L3B5
L3B10請問該如何處理
$str_Array=array_unique(split(",",$str));//變為數組,去掉重復值
sort($str_Array);//按從小到大排列
for($i=0;$i<count($str_Array);$i++){
echo $str_Array[$i]."<br>";
}
///////////// 得到結果 ////////////
L1B10
L1B2
L1B3
L1B4
L1B5
L1B8
L2B1
L3B10
L3B5
但我希望得到的結果是:
L1B2
L1B3
L1B4
L1B5
L1B8
L1B10
L2B1
L3B5
L3B10請問該如何處理
$str_Array=array_unique(split(",",$str));
preg_match_all('#L(\d+)B(\d+)#',implode(',',$str_Array),$m);
array_multisort($m[1],SORT_ASC,$m[2],SORT_ASC,$str_Array);
$str_Array=array_unique(split(",",$str));//變為數組,去掉重復值foreach($str_Array as $r) {
list($t, $a[], $b[]) = preg_split('/[^\d]+/', $r);
}
array_multisort($a, $b, $str_Array);//sort($str_Array);//按從小到大排列
for($i=0;$i<count($str_Array);$i++){
echo $str_Array[$i]."<br>";
}L1B1
L1B2
L1B3
L1B4
L1B5
L1B8
L1B10
L2B1
L3B5
L3B10