2011-09-11 12 views
0

これは自然な降順で返されるコンテンツディレクトリです。私はscandirとnatsortを使用していますが、array_reverseを追加しても結果は得られません。私はopendirとreaddirの組み合わせを使ってこの結果を達成するためにこれまでに何を研究してきました。ソートされる項目は番号付きのイメージファイルです。彼らはこれに10 9 8 7を戻してされるべきであるが、等から.... 999- 998- 997 1000-様0自然順序を降順に並べ替えることによってディレクトリ値の配列を並べ替える

はここコード

$dir='dead_dir/dead_content/'; 
$launcher= scandir($dir); 
natsort($launcher); 
array_reverse($launcher,false); 
foreach($launcher as $value){ 
    if(in_array(pathinfo($value, PATHINFO_EXTENSION),array('png'))){ 
      echo '<img src="dead_dir/dead_content/'.$value.'" />'}} 

}

だまで}あなたのイメージ名は形式になります場合は

+2

"しかし、array_reverseを追加すると結果は得られません" ---そしてこの**簡単な**問題はなぜ解​​決しないのですか? 'array_reverse'によって"結果なし "に変換された入力配列の例を挙げてください。 – zerkms

+0

コードを投稿してください。 – nobody

+0

ここにコードがあります –

答えて

0
$dir='dead_dir/dead_content/'; 
$launcher= scandir($dir); 
natsort($launcher); 
$r_launcher = array_reverse($launcher,true); 

foreach($r_launcher as $value){ 
    if(in_array(pathinfo($value, PATHINFO_EXTENSION),array('png'))){ 
     echo '<img src="dead_dir/dead_content/'.$value.'" />'}} 
0

123-image_name.jpg2323-image_name.jpg、...これが行います。

/** 
* Compares digits in image names in the format "123-image_name.jpg" 
* 
* @param string $img1 First image name 
* @param string $img2 Second image name 
* @return integer -1 If first image name digit is greater than second one. 
* 0 If image name digits are equal. 
* 1 If first image name digit is smaller than second one. 
*/ 
function compareImageNames($img1, $img2){ 
    $ptr = '/^(\d+)-/'; // pattern 

    // let's get the number out of the image names 
    if (preg_match($ptr, $img1, $m1) && preg_match($ptr, $img2, $m2)) { 
     $first = (int) $m1[0]; // first match integer 
     $second = (int) $m2[0]; // second match integer 

     // equal don't change places 
     if($first === $second) return 0; 

     // if move first down if it is lower than second 
     return ($first < $second) ? 1 : -1; 
    } else{ 
     // image names didn't have a digit in them 
     // move them to front 
     return 1; 
    } 
} 

// sort array 
usort($images, 'compareImageNames'); 
関連する問題