Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Array in ordine alfabetico

    Ciao a tutti dovrei ordinare tutte le array dello script che vi posto qui sotto in ordine alfabetico, sto impazzendo e nn ci riesco proprio help help help

    Codice PHP:

    <?php

    function getlastfile($dir)
     {
       
    $dirarr[]="";
       if(!(
    $dp opendir($dir)))
        die(
    "woops");
        while(
    $file readdir($dp))
          if(
    $file != '.' && $file != '..')     
            
    array_push($dirarr,$file);
       
    $size=sizeof($dirarr)-1;
     return 
    $dirarr[$size];
     }

    // Note to self nodisp variable is simply for looks it serves no real purpose in the function 
    // it is false if the last directory is the currenty directory being traversed
    function traverse_dir($dirp,$dir_array,$nodisp)
    {
      global 
    $PHP_SELF;
      static 
    $loop=1;
      
    $size = (sizeof($dir_array) - 1);
      
    $d=rawurlencode(implode("*",$dir_array));
      
    $dirp .= "/" $dir_array[$loop];
      
    $Ivar "images/tree_split.gif";
      if(
    $loop $size)
       
    $dircheck $loop +1;
      else 
       
    $dircheck $loop;
      

     
    $var2 ="";

      for(
    $iloop=0$iloop $loop$iloop++)
         
    $var2 .="[img]images/tree_vertline.gif[/img]";
        if(
    $nodisp == 0)
          
    $var2 substr($var2,36) . " &nbsp&nbsp&nbsp";  
     
      if(!(
    $dp opendir($dirp)))
        die(
    "Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
      
    $lastfile getlastfile($dirp);
       while(
    $file readdir($dp))
          if(
    $file != '.' && $file != '..')     
           {
             
             if(
    $lastfile == $file)
                 
    $Ivar "images/tree_end.gif";
             if(
    $lastfile == $file && $lastfile == $dir_array[$size])
                 
    $nodisp 0;
             
    $files filesize("$dirp/$file");
             
    $filep rawurlencode($file);
             
    // This checks to see if there are anymore sub directories in the dir_array that have not yet been traversed  
              
    if(is_dir("$dirp/$file") &&  ("$dirp/$dir_array[$dircheck]== "$dirp/$file") )
                { 
                  echo 
    "<tr>$var2<img src=$Ivar>[url='$PHP_SELF?closed=1&fold=$filep&d=$d#$dirp/$file'][img]images\folderopen.gif[/img][/url][url='$PHP_SELF?closed=1&fold=$filep&d=$d#$dirp/$file'][b]$file[/b][/url]</tr>";
                  
    $loop++;
                    
    traverse_dir($dirp,$dir_array,$nodisp); 
                }
              else if(
    is_dir("$dirp/$file"))
                echo 
    "<tr>$var2<img src=$Ivar>[url='$PHP_SELF?opened=1&fold=$filep&d=$d#$dirp/$file'][img]images\folder.gif[/img][/url][url='$PHP_SELF?opened=1&fold=$filep&d=$d#$dirp/$file'][b]$file[/b][/url]</tr>";
              else
                echo 
    "<tr>$var2<img src=$Ivar>[url='$dirp/$file'][img]images\file.gif[/img][/url][url='$dirp/$file']$file[/url]</tr>"
     
          }

      
    $loop++;
     return 
    0;
    }


    ?>
    <?php
    if(!isset($fold))
     
    $fold="";
    ?>

     
       
    <?php
    /******************** Define Variables for main code ****************************/
     // Declare some variables that are going to be needed later on


      
    $basedir="Archivio";   
       if(!isset(
    $d))
        
    $d="";
       else
        {
          
    $d rawurldecode($d);
          
    $dir_array2 explode("*",$d);
        }
       if(!isset(
    $dir_array2))
         
    $dir_array2[0] = $basedir;

        
    $dir_array $dir_array2;
        
    $dir $dir_array[0]; 

       if(!isset(
    $opened))
         
    $opened 0;
       else
         
    $opened 1;
       if(!isset(
    $closed))
         
    $closed 0;
       else
         
    $closed 1;
       
       if(
    $basedir != $dir_array[0])
          die(
    "Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
      

    /*********************************************************************************/
     // That should be good enough next define what to do if a directory has been opened or closed

       
    if($closed == 1)
        {
          
    $fold rawurldecode($fold);      
          
    $size2 sizeof($dir_array)-1;
           while(
    $dir_array[$size2] != $fold)
            {
             
    array_pop($dir_array); 
             
    $size2--;
            }
           
    array_pop($dir_array);
          
    $opened =1;
        }     

       if(
    $opened == 1)
        {
         if(
    $closed != 1)
          {
           
    $fold rawurldecode($fold);
           
    $dir_array[] = $fold;
          }
     
    // Above we just added the new folder on and we are going to check and see if it the array still makes a vaild directory. If it doesn't - unload the array back to the base directory and add the new folder on again.
       
            
    $tmp_dir implode("/" $dir_array);
            if(!(
    $tmp = @opendir($tmp_dir)))
              {
               
    $size2 sizeof($dir_array) - 1;
                 while(!(
    $tmp = @opendir($tmp_dir)))
                   {
                     
    array_pop($dir_array);
                     
    array_pop($dir_array);
                      
    $dir_array[] = $fold;
                      
    $tmp_dir implode("/" $dir_array);
                   }
              }
         }

    /*********************************************************************************************/
    ?>
    <tr>
        <td></td>
    </tr>
    <table  width="100%" >
     
        <?php
    /*********************************************************************************************/




    // Thats it for the opened and closed code we need now were going to execute the initial directory traversion on the base directory.


    if(sizeof($dir_array)-== 0)
     
    $size 0;
    else
     
    $size 1;

      if(!(
    $dp opendir($dir)))
        die(
    "Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
      
    $lastfile getlastfile($dir); 
      
    $d=rawurlencode(implode("*",$dir_array));
      
    $Ivar "images/tree_split.gif";
      echo 
    "<tr>[url='$PHP_SELF'][img]images/drive.gif[/img][/url][b][url='$PHP_SELF'][/url][/b]</tr>";
        while(
    $file readdir($dp))
          if(
    $file != '.' && $file != '..')     
            { 
              
    $files filesize("$dir/$file");
              
    $filep rawurlencode($file);
               if(
    $lastfile == $file)
                 
    $Ivar "images/tree_end.gif";
               if( (
    is_dir("$dir/$file")) && ("$dir/$dir_array[$size]== "$dir/$file") )
                 {
                   echo 
    "<tr><img src=$Ivar>[url='$PHP_SELF?closed=1&fold=$filep&d=$d'][img]images\folderopen.gif[/img][/url][b][url='$PHP_SELF?closed=1&fold=$filep&d=$d']$file[/url][/b]</tr>";
                    
    traverse_dir($dir,$dir_array,1);
                  }
                 
               else if(
    is_dir("$dir/$file"))
                 echo 
    "<tr><img src=$Ivar>[url='$PHP_SELF?opened=1&fold=$filep&d=$d'][img]images\folder.gif[/img][/url][b][url='$PHP_SELF?opened=1&fold=$filep&d=$d']$file[/url][/b]</tr>";            
               else
                 echo 
    "<tr><img src=$Ivar>[url='$basedir/$file'][img]images\file.gif[/img][/url][url='$basedir/$file']$file[/url]</tr>";
             }


    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    premetto che non ho letto il codice, poichè di 200 righe, ma comunque php fornisce una vagonata di funzioni di core per riordinare gli array, in base alla chiave, in base al valore, in base a funzioni custom eccetera eccetera.

    asort o natsort potrebbero fare al caso tuo.

    se realmente ti interessa imparare questo linguaggio impara le funzioni di core degli array.
    PHP è uno dei linguaggi ad avere gli array più potenti che io abbia mai usato, grazie alle funzioni di core e il livello di manipolabilità che permettono, non conoscere come interagire con questi è come guidare bendati.

  3. #3
    Ho provato in tanti modi ma non riesco proprio, lo script mi ordina tutti in base alla data di creazione delle directory e non riesco a capire la parte di codice di questo odinamente che ovviamente vorrei inserire per ordine alfabetico...

  4. #4
    nessuno riesce a darmi una mano?

  5. #5
    A me li ordina alfabeticamente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Ti spiego meglio il problema: ipotizza una struttura della directory del genere

    Archivio (c'è ordine alfabetico)
    -paolo (non c'è ordine alfabetico)
    --casa (c'è ordine alfabetico)
    --lavoro (c'è ordine alfabetico)
    -luca (non c'è ordine alfabetico)


    Quindi il problema e nella prima sottodiretoy che vengono visualizzare in ordine di creazione della cartella spero di esser stato chiaro

  7. #7
    Ti ripeto che a me le cartelle vengono visualizzare in ordine alfabetico. Ho fatto varie prove mofificando i nomi e le date.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Ecco usa la funzione sort();
    Ecco un esempio che ti ho fatto con dei nomi :
    Codice PHP:
    <?php  
    $NomiUtenti 
    = array("Alberto","Antonio","Fabio","Marco","Eleonora");  
    sort($NomiUtenti);  
    foreach(
    $NomiUtenti as $posizione => $nome){
    echo 
    "Nome[$posizione] : $nome 
    "
    ;  
    }  
    ?>
    Spero di esserti stato d'aiuto.

  9. #9
    la sapresti integrare nel mio script?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Se mi indichi le righe che si occupano di fare l'array forse appena ho 10m liberi provo a integrartelo, non è molto difficile basta solo fare come nel mio esempio utilizzando sort(), poi sort() è una soluzione ma ci possono anche essere altre funzioni che lo fanno....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.