Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Dascos
    La fuznione postata da bstefano funziona, è che c'è un errore di sintassi...
    l'errore era in for($j=0;$j<count($uni);$j++), che era scritta senza il $ nella condizione di verifica...
    Funziona se accedi all'array risultante tramite chiave, ma se utilizzi un ciclo foreach ottieni
    codice:
    D;D;X;V;V;F;D;F;X;F;X;F;
    Che non è il risultato atteso, così come anche la print_r produce
    codice:
    Array ( [0] => Array ( [3] => D [0] => D [5] => X [1] => V [2] => V [4] => F ) [1] => Array ( [3] => D [0] => F [5] => X [1] => F [2] => X [4] => F ) )
    che non è il risultato atteso... come si può vedere i valori con la loro chiave occupano una posizione inappropriata nell'array. La soluzione è preallocare la memoria con le chiavi disposte in modo corretto caricando dei valori fittizzi e quindi aggiornare le locazioni individuate dalle chiavi i nuovi valori; che è quello che fa la funzione del mio post nelle prime 3 righe e poi fa nelle successive 3 righe le stesse cose delle 9 righe di bstefano che in questa occasione si è voluto impegnare poco .
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  2. #12

  3. #13
    Originariamente inviato da Grino
    Prerequisiti:
    Condizione fondamentale, non verificata dalla funzione che propongo, è che i subarray che compongono l'array dati a 2 dimensioni e l'array delle nuove posizioni abbiano tutti medesima cardinalità.
    L'array delle nuove posizione sia organizzato in modo tale che nelle chiavi si abbiano le vecchie posizioni e nei valori le nuove.

    Nota:
    L'inizializzazione dell'array result è necessario affinché PHP non utilizzi l'array come associativo ma come indicizzato con chiave numerica. In realtà gli array PHP sono sempre associativi, quindi facciamo in modo che le chiavi numeriche siano in ordine corretto. Vengono quindi allocate tutte le posizioni necessarie e poi aggiornate con i valori corretti.

    [...]

    Ora che mi sono distratto un po' torno al lavoro... ciao!
    Funziona perfettamente!!! Grazie mille!

    Per quanto riguarda la funzione di bstefano, l'errore non era nel $ mancante, l'avevo notato e corretto. Non so cosa possa essere... magari non c'erano errori, ma sul mio server me lo mandava in tilt.

  4. #14
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Dascos
    ksort...
    Quando uno ha ragione ha ragione ... eccola qui con il ksort

    Codice PHP:
    function SortByArray($dataArray,$posArray){    
        foreach(
    $dataArray as $key=>$array){
            foreach(
    $posArray as $old=>$new)
                
    $result[$key][$new]=$array[$old];
            
    ksort($result[$key],SORT_NUMERIC);
        }

        return 
    $result;

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  5. #15

  6. #16
    Dicevo...
    Codice PHP:
    $uni=Array ( 30512) ;

    $bid=Array (
    => Array ( "D""D""X""V""V""F" ),
    => Array ( "D""F""X ""F""X""F" )
    );

    foreach (
    $bid as $key => $var)
    {
        foreach (
    $var as $key2 => $val) {
            
    $d[$key][$uni[$key2]] = $val;
        }
        
    ksort($d[$key]);
    }
    print_r($d

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.