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

    [PHP] - Ordinamento Array

    Buongiorno a tutti,
    avrei un problema con un array... allora, io leggo dei dati da un file xml, per consentire una ricerca devo poter far scegliere tramite una select dei valori, solo che devo ordinarli per nome o.0 ... dato che non conosco l'xml -.- e relativo xpath cercavo di usare un qualche sort degli array (tramite php) ma i risultati sono stati insoddisfacenti, posto un poco di codice:

    Codice PHP:
    $xml simplexml_load_file('Prezzario_UNI6.xml');
    print (
    '<option value=""></option>');
    foreach(
    $xml->prezzario->prodotto as $article)
    {
        
    $lol $article['prdId'];
        
    $ilmusso78_2 strlen($lol);
        if (
    $ilmusso78_2 == 4)
        {
            
    $lol_zama $article->prdDescrizione['breve'];
            
    $gamma['$lol'] = $lol_zama;
        }
    }
    asort($gamma);
    $i 0;
    $lol2 count($gamma);
    while (
    $i != $lol2)
        {
            
    $val1 $gamma['$i'];
            
    $val2 array_keys($gamma$val1x);
            
    $val2x $val2[$i];
            print (
    '<option value="'.$val2x.'">'.$val1.'</option>');
            
    $i++;
        }; 
    questo è solo una delle mille modifiche che ho fatto, in pratica ho bisogno di entrambi i campi... la versione che funziona sino ad ora è rendere un array così strutturato:

    1 - prdId - breve
    2 - prdId - breve
    eccetera, solo che il sort deve ordinare per il campo breve -.- e tenermi il valore giusto in prdId, sarebbe ottimo a questo punto se mi ricreasse gli indici a partire da 0 che posso stampare con un while con variabile $i++ o con un ciclo for o.0

    Grazie mille in anticipo.

  2. #2
    ho risolto una parte o.0 con questo script:

    Codice PHP:
    $xml simplexml_load_file('Prezzario_UNI6.xml');
    print (
    '<option value=""></option>');
    foreach(
    $xml->prezzario->prodotto as $article)
    {
        
    $lol $article['prdId'];
        
    $ilmusso78_2 strlen($lol);
        if (
    $ilmusso78_2 == 4)
        {
            
    $lol_zama $article->prdDescrizione['breve'];
            
    $gamma[''.$lol_zama.''] = $lol// assegno un array di nome $gamma['descrizione breve'] il valore prdId
            
    $test[] = $lol_zama// creo ed aggiungo voci ad un array senza specificare
                                       // l'id
        
    }
    }
    sort($test); //ordino alfabeticamente (dovrebbe ordinare l'array, non le chiavi)
    $i 0;
    $lol2 count($test);
    while (
    $i != $lol2)
        {
            
    $val1 $test[$i];
            
    $val2 $gamma[''.$val1.''];
            print (
    '<option value="'.$val2.'">'.$val1.'</option>');
            
    $i++;
        }; 

    il problema è che l'ordinamento è cambiato ma non è in ordine alfabetico -.- strani scherzi del destino? o.0

  3. #3
    Ho risolto con questo codice

    Codice PHP:
    sort($testSORT_STRING); // forzo ordinamento alfabetico dicendogli che si tratta di una stringa :) 

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.