• User

    associare lettere di una stringa a elementi array

    Salve a tutti!
    Ho una stringa di questo tipo ' 221 ',
    E un array contenente dei nomi :

    [NOMI] => Array
                    (
                        [0] => Array
                            (
                             
                                [nick] => BLA
                            )
    
                        [1] => Array
                            (
    
                                [nick] => bli
                            )
    
                        [2] => Array
                            (
           
                                [nick] => blo
                            ) 
    

    Io dovrei cercare di associare il primo numero della stringa con il primo elemento dell'array,il secondo con il secondo etc etc...
    Nessuno mi potrbbe indicare la via o darmi uno spunto?:)


  • Bannato User Attivo

    scusa ma non è chiaro... le chiavi dell'array solitamente se non espresse diversamente sono i numeri che parte da [0] e quindi associ il numero alla chiava oppure puoi associare al valore... se 221 devi avere la chiave array 221 al limite se la dividi 2 2 1 esce due volte blo e una BLA

    fai un esempio più charo di quello che hai bisogno al limite ti verrà postata una soluzione totalmente diversa ma che risolve il problema


  • User

    intanto grazie per la risposta 🙂

    Praticamente 2211021 è una stringa che prendo da un server e i nomi,che arrivano anche essi dal server sono nello stesso ordine della stringa,cioè guardando il primo esmpio che ho fatto bla = 2 , bli =2 , blo =1 .
    Il mio obiettivo è spostare in una tabella i nomi che sono marcati '1' in un altra quelli marcati '2' e in un altra ancora quelli '0'.


  • Super User

    Ti ho scritto questo script in due minuti, non l'ho provato ma dal codice dovrebbe andare.
    E' per una board? 🙂
    E' un ottimo esercizio per gli array, questo 😄

    [php]<?php

    $spl = str_split($str);

    $gruppi = array();

    foreach($nomi as $chiave=>$valore)
    {
    $gruppo = $spl[$chiave];

    if(!array_key_exists($gruppo,$gruppi))
    $gruppi[$gruppo] = array();

    array_push($gruppi[$gruppo],$valore['nick']);

    }

    print_r($gruppi);

    ?>[/php]

    Consideriamo $str la stringa contenente i vari indici e $nomi l'array multidimensionale dei nomi, che contiene sotto-array con un indice "nick".
    Innanzitutto trasformiamo $str in un array, i cui elementi sono i vari caratteri che compongono la stringa.
    Allochiamo una nuova variabile array, $gruppi, destinata a contenere i dati da dividere poi in tabelle.
    Effettuiamo una iterazione sull'array dei nomi.
    Nel ciclo $gruppo vale il carattere della stringa $str (trasformata in array) corrispondente all'indice corrente dell'array iterato.
    Ora scriviamo nell'array $gruppi; se questo non ha già un indice corrispondente a $gruppo lo creiamo come sotto-array.
    Infine aggiungiamo nel sotto-array con indice corrispondente a $gruppo il nick corrente.

    Spero di essere stato chiaro.

    Ciao!

    Matteo Micanti.