Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    7

    [php] ordinare elementi di un array

    buon pomeriggio,
    spero in un vostro aiuto
    ho questo codice php che serve per mettere smile tramite str_replace() .
    nel file scrivo il codice che sostituisce l'immagine
    esempio
    :ciao|[img]ecc ecc [/img]
    Codice PHP:
    $stringa$_POST['stringa'];
    $filefile("file.txt");
    $dimensionecount($file);
    for(
    $i=0$i<=$dimensione$i++){
    $codiceexplode("|",$file[$i]);
    $stringastr_replace("$codice[0]","$codice[1]",$stringa); } 
    il tutto funziona , però se incontra ad esempio due codici simili come
    :P e poi :PS , prende in considerazione solo il primo ,
    quindi ho pensato di ordinarli con natcasesort() ma non riesco , qualcuno ha la soluzione? grazie in anticipo

  2. #2
    Utilizza usort() ed ordina i codici per lunghezza decrescente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    7
    grazie per la risposta ,
    ho provato in diversi modi ma non funziona
    Codice PHP:
    $stringa$_POST['stringa'];   
    $filefile("file.txt");   
    $dimensionecount($file);  
     for(
    $i=0$i<=$dimensione$i++){   
    $codiceexplode("|",$file[$i]);
    usort($codice[0]);
    $stringastr_replace("$codice[0]","$codice[1]",$stringa); } 
    non ho idea

  4. #4
    Originariamente inviato da fp9292
    ho provato in diversi modi ma non funziona
    Perchè non inizi aprendo il manuale e leggendo almeno quanti parametri richiede usort() per funzionare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    7
    EDIT: con usort() decido io il parametro ( almeno così mi sembra di aver capito ) ?

  6. #6
    Originariamente inviato da fp9292
    EDIT: con usort() decido io il parametro ( almeno così mi sembra di aver capito ) ?
    quanti parametri richiede usort() per funzionare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    7

  8. #8
    Originariamente inviato da fp9292
    invece di dire "boh" basta andare cercare con google "php usort" e tra i primi link ci sarà sicuramente quello del manuale di PHP: http://it2.php.net/usort

    Dove nel link si legge che:
    usort — Sort an array by values using a user-defined comparison function
    Codice PHP:
    bool usort  ( array &$array  callback $cmp_function  

    array
    The input array.

    cmp_function
    The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
    e ci sta anche l'esempio d'uso (come sempre):
    Codice PHP:
    function cmp($a$b)
    {
        if (
    $a == $b) {
            return 
    0;
        }
        return (
    $a $b) ? -1;
    }

    $a = array(32561);

    usort($a"cmp");

    foreach (
    $a as $key => $value) {
        echo 
    "$key$value\n";

    ....se si è pigri è meglio lasciar perdere la programmazione e dedicarsi ad altro.
    Administrator of NAMDesign.Net

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    7
    non è per pigrizia , ma con quella spiegazione non è che ho capito molto ..

  10. #10
    ...uhm...

    Li dice che la funzione "usort()" richiede due parametri in ingresso di cui il primo è l'array contenente i dati da ordinare ed il secondo è una funzione di confronto per stabilire l'ordinamento di due singoli elementi; questa funzione deve ritornare un numero intero (-1; 0; +1).

    Quindi per utilizzare usort() devi crearti questa funzione di confronto e passarla alla funzione insieme all'array da ordinare.
    Administrator of NAMDesign.Net

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 © 2024 vBulletin Solutions, Inc. All rights reserved.