Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    Ordinare un array multidimensionale

    lo so che ci sono un'infinità di discussioni su questo argomento, ma non ho trovato niente che mi potesse aiutare, in quasi tutte si finiva col risolvere agendo su database... io non posso farlo.

    ho un array di questo tipo:

    Codice PHP:
    Array
    (
        [
    0] => Array
            (
                [
    id] => 6
                
    [title] => Titolo 1
                
    [pertinenza] => 50
            
    )
        [
    1] => Array
            (
                [
    id] => 10
                
    [title] => Titolo 2
                
    [pertinenza] => 50
            
    )
        [
    2] => Array
            (
                [
    id] => 7
                
    [title] => Titolo 3
                
    [pertinenza] => 25
            
    )
        [
    3] => Array
            (
                [
    id] => 8
                
    [title] => Titolo 4
                
    [pertinenza] => 25
            
    )
        [
    4] => Array
            (
                [
    id] => 1
                
    [title] => Titolo 5
                
    [pertinenza] => 50
            
    )

    come vedete, l'array è disordinato... io avrei bisogno di ordinarlo in base alla pertinenza (decrescente), in modo che venga fuori qualcosa tipo:

    Codice PHP:
    Array
    (
        [
    0] => Array
            (
                [
    id] => 6
                
    [title] => Titolo 1
                
    [pertinenza] => 50
            
    )
        [
    1] => Array
            (
                [
    id] => 10
                
    [title] => Titolo 2
                
    [pertinenza] => 50
            
    )
        [
    2] => Array
            (
                [
    id] => 1
                
    [title] => Titolo 5
                
    [pertinenza] => 50
            
    )
        [
    3] => Array
            (
                [
    id] => 7
                
    [title] => Titolo 3
                
    [pertinenza] => 25
            
    )
        [
    4] => Array
            (
                [
    id] => 8
                
    [title] => Titolo 4
                
    [pertinenza] => 25
            
    )


    come posso fare? ho guardato array_multisort ma non ho mica capito se fa al caso mio

  2. #2
    Prova con un codice simile a questo:

    Codice PHP:
    <pre>
    <?php 
    $array 
    = array(
                    array(
    'id' => 5'value' => 5),
                    array(
    'id' => 4'value' => 4),
                    array(
    'id' => 3'value' => 3),
                    array(
    'id' => 2'value' => 2),
                    array(
    'id' => 1'value' => 1),
                  );

    // from [url]http://linux.wku.edu/~lamonml/algor/sort/bubble.html[/url]
    function bubbleSort(&$elements$size$index) {
      for (
    $i = ($size 1); $i >= 0$i--) {
        for (
    $j 1$j <= $i$j++){
          if (
    $elements[$j 1][$index] > $elements[$j][$index])
          {
            
    $temp $elements[$j 1];
            
    $elements[$j 1] = $elements[$j];
            
    $elements[$j] = $temp;
          }
        }
      }
    }

    print_r($array);
    bubbleSort($arraycount($array), 'value');
    print_r($array);
    ?>
    </pre>
    P.S.
    Per il futuro, se devi postare degli array, ti suggerisco di utilizzare la funzione var_export() in modo che che cerca di aiutarti possa copiare ed incollare il codice senza doverlo riscriverlo a mano.

  3. #3
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    ops chiedo scusa, ho pensato di postare l'array in quel modo perchè fosse più leggibile

    stasera se riesco provo il bubblesort... grazie 1000!

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.