Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Matrice e Ordinamento

  1. #1

    Matrice e Ordinamento

    Buonasera a Tutti,
    volevo chiedervi un aiuto perchè non mi sono mai trovato in un caso del genere.

    Supponiamo che io abbia i seguenti dati (non in database ma frutto di lettura file)
    Codice | Prodotto | Quantità
    001 CCC 32
    002 DDD 21
    003 QQQ 63

    Come posso con PHP creare una Matrice, ordinare la matrice sul valore quantità in maniera discendente (da maggiore a minore) per un eventuale stampa a video?

    Spero di ricevere quest'aiuto per imparare qualcosa di nuovo,
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma il file di testo è già formattato cosi?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  3. #3
    Si i file sono diversi e disordinati.

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Perchè non usi un database o un file xml? Sicuramente sarebbe più comodo... cmq ho provato a buttare giu due righe su come potresti fare... magari parti da questo e miglioralo

    Codice PHP:
        
            $testo    
    file('testo.txt');
        
    $result   = array();
        
    $quantita 0;
        
        for (
    $i 1$i count($testo); $i++)
        {
            
    $exploded explode(' '$testo[$i]);
            
            
    $current = array(
                
    'codice'   => trim($exploded[0]),
                
    'prodotto' => trim($exploded[1]),
                
    'quantita' => (int) $exploded[2],
            );

            if (
    $quantita >= $current['quantita'])
            {
                
    array_push($result$current);    
            }
            else 
            {
                
    array_unshift($result$current);
            }

            
    $quantita $current['quantita'];        
        }
        
        
    var_dump($result); 
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Ciao,
    grazie per la soluzione ma credo che l'ordinamento non possa funzionare così,
    mentre riesco a creare la matrice. Ti spiego, mettiamo che io abbia la serie di quantità:

    52 80 15 36

    Quantità = 0 confronto con 52 e metto 52 nell'array ponendo Quantità = 52
    Quantità = 52 confronto con 80 metto 52 nell'array sopra e pongo Quantità = 80
    Quantità = 80 confronto con 15 metto 15 nell'array sotto e pongo Quantità = 15
    e qui scatta l'errore:
    Quantità = 15 lo confronto con 36 metto 36 nell'array sopra ma ovviamente 36 sarà minore del valore 80 e quindi l'array non sarà ordinato.

    Qualche altra idea?

  6. #6
    Ho risolto in questo modo, niente push e unshift, ordino con Sort (Asc) e poi rigiro l'array per averlo (Desc)

    Codice PHP:
    sort($matrice);          
    $matrice array_reverse($matricetrue); 
    Grazie a Tutti.

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.