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

    ordinare array bidimensionale

    ciao a tutti, ho cercato un pò in internet ma ho fatto più confusione che altro.

    Io recupero con sql un array con le seguenti chiavi: data, cliente, ecc... ordinato per data-ora discendente (in pratica gli ultimi lavori fatti).

    A me servirebbe riordinarli per nome del cliente.

    Immagino ci sia una funzione banale ma che io non riesco a trovare...
    Griggio Claudio

  2. #2
    Nella query sql aggiungi ordinamento "ORDER BY clienti", se il campo che ti interessa si chiama clienti. Altrimenti usa diverso nome del campo per ordinamento.

  3. #3
    utilizza arsort() per riordinare un array!

    http://www.php.net/manual/en/array.sorting.php
    Dio non è nient'altro che l'espressione e il prodotto delle debolezze umane
    ------
    PHP-PROJECT.COM

  4. #4
    credo che la cosa sia più complessa, o meglio, mi son spiegato male, la mia situazione attuale è:

    [0] => ([0] => data
    [1] => cliente C
    [2] => ...
    [...] => ...)

    [1] => ([0] => data
    [1] => cliente A
    [2] => ...
    [...] => ...)

    [2] => ([0] => data
    [1] => cliente B
    [2] => ...
    [...] => ...)

    A me serve il "sorting" che mi dia questo:


    [0] => ([0] => data
    [1] => cliente A
    [2] => ...
    [...] => ...)

    [1] => ([0] => data
    [1] => cliente B
    [2] => ...
    [...] => ...)

    [2] => ([0] => data
    [1] => cliente C
    [2] => ...
    [...] => ...)
    Griggio Claudio

  5. #5
    Come ho detto nel post precedente, prima di costruire un array bidimensionale ordina risultato della query con "order by", e solo successivamente crea l'array con dei record già ordinati. La soluzione più semplice secondo me.

  6. #6
    il problema nasce dal fatto che io devo ordinare per cliente NON tutti i record presenti nella tabella SQL ma solo gli ultimi 500, pertanto faccio "ORDER BY data DESC" (e trovo gli utlimi) e poi di solo questi devo ordinare per nome cliente...
    Griggio Claudio

  7. #7
    Allora in quel caso usa usort specificando una funzione che descrive in base a cosa devono essere ordinati gli elementi.

  8. #8
    Devi usare questa funzione: http://uk.php.net/usort

    Guarda l'esempio #2 in quella pagina del manuale.

  9. #9
    il mio array è composto da una variabile $result che ottengo eseguendo
    codice:
    $result = sqlsrv_query($conn, $query);
    se io stamp questa varibile mi da Resource id#6

    credo che questo sia un punto da sistemare prima di partire... :-(
    Griggio Claudio

  10. #10
    La tua variabile $result non è un array ma una risorsa sql. Per questo motivo stampandola ti da "Resource id#6". Per ricavare i dati dovresti usare la funzione sqlsrv_fetch_array() che ti restituisce ogni volta nuova riga della tua tabella risultato sql. Puoi inserire questa funzione in un ciclo while, cosi potrai scandire intera tabella.

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.