案例按A-Z升序和0-9降序排序?
问题描述:
我有一个特定的方式案例按A-Z升序和0-9降序排序?
我总是像第5位必须通过数值后进行排序图像阵列如
[Images] => Array
(
[0] => /var/www/httpdocs/images/products/detail/10396-alt-1.jpg
[1] => /var/www/httpdocs/images/products/detail/10396-main-599.jpg
)
[Images] => Array
(
[0] => /var/www/httpdocs/images/products/category/10167-main-354.jpg
[1] => /var/www/httpdocs/images/products/detail/10167-alt-1.jpg
[2] => /var/www/httpdocs/images/products/detail/10167-alt-2.jpg
[3] => /var/www/httpdocs/images/products/category/10168-main-361.jpg
[4] => /var/www/httpdocs/images/products/category/10168-main-360.jpg
)
,我想通过基本名称进行排序,而且还通过alphanum具有α排序的升序(za),然后也具有按降序排序的最后数字。我怎么做到这一点?
示例输出应该是这样从路径此
[Images] => Array
(
[0] => /var/www/httpdocs/images/products/detail/10396-main-599.jpg
[1] => /var/www/httpdocs/images/products/detail/10396-alt-1.jpg
)
[Images] => Array
(
[0] => /var/www/httpdocs/images/products/category/10167-main-354.jpg
[1] => /var/www/httpdocs/images/products/category/10168-main-360.jpg
[2] => /var/www/httpdocs/images/products/category/10168-main-361.jpg
[3] => /var/www/httpdocs/images/products/detail/10167-alt-1.jpg
[4] => /var/www/httpdocs/images/products/detail/10167-alt-2.jpg
)
答
- 提取文件名:
10396-main-599
- 分割的文件名与 ' - ' 作为分隔符
10396
,main
,使用比较599
-
排序路径功能
function is_path_less($split_path1,$split_path2){ if($split_path1[0] == $split_path2[0]){ if($split_path1[1] == $split_path2[1]){ return $split_path1[2] < $split_path2[2]; }else{ return $split_path1[1] > $split_path2[1]; } }else{ return $split_path1[0] < $split_path2[0]; } }
凡$split_path1
和$split_path2
是[ “10396”, “主”, “599”]和[ “10396”, “ALT”, “1”]
其结果将是:
["10396","main","599"]
["10396","alt","1"]
您能提供一个想要的结果的例子吗? – Ali 2014-10-27 19:36:54
是的,我会提供一个结果和一个更深入的数组 – ehime 2014-10-27 19:39:00