2014-10-27 122 views
0

我有一个特定的方式案例按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 
     ) 
+0

您能提供一个想要的结果的例子吗? – Ali 2014-10-27 19:36:54

+0

是的,我会提供一个结果和一个更深入的数组 – ehime 2014-10-27 19:39:00

回答

0
  1. 提取文件名:10396-main-599
  2. 分割的文件名与 ' - ' 作为分隔符10396main,使用比较599
  3. 排序路径功能

    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"]