Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Stampare solo i valori più grandi di un array

    Salve, ho già postato per questo argomento e ho avuto risposte esaurienti, ma questa volta l'operazione che dovrei compiere è differente da quelle fatte fino ad ora, e non riuscendo da solo sono costretto a chiedere un aiuto, ho questo array:
    Codice PHP:
    $contenuto 'a=1&b=2&c=3%d=4&e=3&f=4';
    $arrayexplode('&'$contenuto); 
    Adesso vorrei selezionare le due lettere con il valore più alto.
    Quindi vorrei tramite il valore $array stampare solo 'd=4, f=4'.
    Avete idea di come fare?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo. Da migliorare comunque.

    Codice PHP:
    <?php
        $contenuto 
    'a=1&b=2&c=3&g=6&d=4&e=3&f=4';
        
    $Pattern   "|([a-z])[=]([0-9])|U";
        
    preg_match_all($Pattern,$contenuto,$array);
        
        
    $Gruppi  $array[0];
        
    $Lettere $array[1];
        
    $Numeri  $array[2];

        
    asort($Numeri);

        
    $max max($Numeri);

        foreach (
    $Numeri as $key => $value) {
            if (
    $value == $max) {
                print 
    $Gruppi[$key]."
    "
    ;
            }
        }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Molto buono come esempio, ho dovuto cambiare vari punti, ma l'esempio è ben fatto.
    Ultima precisazione che non avevo chiesto prima perchè non mi era venuto in mente.
    Ho cercato funzioni simili a "max" e "min", ma ogni esempio o spiegazione che trovo prende sempre gli stessi valori dal'array e sono punto e a capo.
    Mettiamo conto che abbia questo array:
    Codice PHP:
    $contenuto 'a=1&b=2&c=3&d=3'
    Come faccio a prendere in automatico non tutti i valori corrispondenti al massimo, ma i 3 valori più alti.
    La stampa risultante dovrà essere:
    b=2 c=3 d=3, al posto di c=3&d=3, se però l'array conteneva anche il valore f=2, sarebbe stata: b=2 c=3 d=3 f=2 .
    Cerco un comando simile a max, ma che prenda i due valori più alti, e non solo il primo.

  4. #4
    Aggiorno per comunicare che forse avrei trovato la soluzione con:
    Codice PHP:
    max_in_range($range$array); 
    Tuttavia riscontro questo errore:
    codice:
    Fatal error: Call to undefined function max_in_range()...
    Vorrei sapere se la funzione è deprecata, e se si da cosa è stata sostituita?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    La parlano di quella funzione.

    http://www.webmasterworld.com/php/4071828.htm
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    OK, letto la documentazione e provato gli esempi, il problema è che ottengo sempre lo stesso errore sul comando max_in_range, e dagli altri esempi usando max viene fatta la stampa dell'ultimo valore indicato in range, anche se non è il più grande fra gli array.
    Provo a ricercare tra i comandi di php, magari non si fà così.

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.