Re: PHP: Mulitiple Arrary Sort

From: Date: Fri, 05 Sep 2008 01:11:26 +0000
Subject: Re: PHP: Mulitiple Arrary Sort
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-279542@lists.php.net to get a copy of this message
Diogo Neves schreef:
On Wed, Sep 3, 2008 at 12:35 AM, Vernon <vernon@comp-wiz.com> wrote:
I've gotten the one array down and I've figured out how to sort that array, however, I need to sort the array by the modified date of the file. Here's what I got so far: <?php // Open current directory if($handle = opendir($dir)){ // Loop through all files while(false !== ($file = readdir($handle))){ // Ignore hidden files if(!preg_match("/^\./", $file)){ // Put dirs in $dirs[] and files in $files[] if(is_dir($file)){ $dirs[] = $file; }else{ $files[] = $file; } } } // Close directory closedir($handle); // if $files[] exists, sort it and print all elements in it. if(is_array($files)){ //HERE IS MY CURRENT SORT WHICH I KNOW I NEED TO CHANGE BUT AM UNSURE HOW sort($files); foreach($files as $file){ $completeFileName = $dir . $file; //I WANT TO SORT BY THIS echo date("m-d-Y", filemtime($completeFileName)) . "<br>"; } } } ?> Any ideas on how to fix this? Thanks -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Hi, <?php
$dir        = '/tmp';
$files        = scandir( $dir);
$files_new    = array( );
foreach( $files as $file ) {
    if( strrpos( $file, 'sess_' ) !== false ) {
        $files_new[filemtime( $dir . '/' . $file )] = $file;
this totally breaks because file modification time is only accurate to a second (many files can be modified in that time) ... appending the file name to the key will fix that: $files_new[filemtime( $dir . '/' . $file ).$file] = $file;
    }
} ksort( $files_new ); var_dump( $filesnew ); ?>


« previous php.general (#279542) next »