<?php
$rd_list = array('中山北路一段','承德路九段','中山北路五段','承德路三段','中山北路六段','承德路二段','中山北路四段','中山北路七段');

echo 'Before sort:'.PHP_EOL;
var_dump($rd_list);

usort($rd_list,function($a,$b){
	$pattern = '/(.*?)([一二三四五六七八九])段/u';
	$num = array('一','二','三','四','五','六','七','八','九');
	if (preg_match($pattern,$a,$matches_a) && preg_match($pattern,$b,$matches_b)){
		if ($matches_a[1] == $matches_b[1]){
			return array_search($matches_a[2],$num)-array_search($matches_b[2],$num);
		}
	}
	$a_big5 = iconv('UTF-8','big5',$a);
	$b_big5 = iconv('UTF-8','big5',$b);
	return strcmp($a_big5,$b_big5);
 
});

echo 'After sort:'.PHP_EOL; 
var_dump($rd_list);
