Visualizzazione risultati 1 fino 5 di 5

Discussione: problema con sort

  1. #1
    calcmore non è connesso Utente giovane
    Data registrazione
    05-05-2018
    Messaggi
    69

    Predefinito problema con sort

    sort ordina una lista, ma se tu hai una cosa tipo:

    30=Alice
    10=Marco
    15=Michele
    43=Marta

    Come fai a ordinare il tutto in base al "campo 1" (cioè il numero)?

    io ci sono riuscito ma il mio metodo è formato da una trentina di righe.

    per curiosità (e anche per un utilizzo futuro) mi chiedevo se esistesse un metodo più sintetico...

    grazie anticipatamente

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Per rispondere più dettagliatamente, cosa hai in ingresso? Un array di stringhe? Oppure sono due array separati del tipo:
    Codice:
    Array
    (
        [0] => 30
        [1] => 10
        [2] => 15
        [3] => 43
    )
    Array
    (
        [0] => Alice
        [1] => Marco
        [2] => Michele
        [3] => Marta
    )
    Ciao!

  3. #3
    calcmore non è connesso Utente giovane
    Data registrazione
    05-05-2018
    Messaggi
    69

    Predefinito

    mi intesserebbero entrambi i casi

    grazie anticipatamente

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Codice PHP:
    <?php

    $a
    = array(30,10,15,43);
    $b = array('Alice','Marco','Michele','Marta');

    array_multisort($a,$b); //$b sarà ordinato come chiedi

    print_r($b);
    Codice PHP:
    <?php

    function ordina($a, $b)
    {
    $numero1 = substr($a,0,strpos($a,'='));
    $numero2 = substr($b,0,strpos($b,'='));
    if (
    $numero1 == $numero2)
    {
    return
    0;
    }
    return (
    $numero1 < $numero2) ? -1 : 1;
    }

    $a = array('30=Alice','10=Marco','15=Michele','43=Marta');

    usort($a,'ordina'); //$a sarà ordinato come chiedi

    print_r($a);
    EDIT:
    forse intendevi:
    Codice PHP:
    <?php

    $a
    = array(30=>'Alice',10=>'Marco',15=>'Michele',43=>'Marta');

    ksort($a); //$a sarà ordinato come chiedi

    print_r($a);
    Ovviamente se intendevi diversamente chiedi pure. Anche se hai domande sul funzionamento chiedi pure, ma ho semplicemente utilizzato le funzioni base di PHP: guardando nella documentazione ufficiale dovresti capire facilmente il funzionamento.

    Ciao!
    Ultima modifica di alemoppo : 08-09-2018 alle ore 21.36.53

  5. #5
    calcmore non è connesso Utente giovane
    Data registrazione
    05-05-2018
    Messaggi
    69

    Predefinito

    grazie mille !

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •