• User Attivo

    riordinare Array con indici mancanti

    Ciao a tutti...
    Ho un array di elementi di questo tipo:

    nome[1]="Pippo"
    nome[2]="Paperino"
    nome[3]="Gastone"
    nome[6]="Topolino"
    nome[8]="Paperoga"

    Alcuni indici sono mancanti, ma a priori non posso sapere quali (sono il submit di una form i cui campi possono essere aggiunti o rimossi dinamicamente dall'utente).

    Io vorrei "reindicizzare" l'array in modo che vengano occupati tutti gli indici, senza buchi, ma senza riordinare gli elementi. In pratica mi servirebbe questo risultato:

    nome[0]="Pippo"
    nome[1]="Paperino"
    nome[2]="Gastone"
    nome[3]="Topolino"
    nome[4]="Paperoga"

    Ho pensato di scrivere una funzione ad hoc ma mi sono chiesto se magari c'è già qualche comando "di serie". 😉
    Ho dato un'occhiata al comando Sort(Array) e le sue varianti ma non mi pare faccia quello che mi serve.


  • ModSenior

    Ciao Ministry,

    secondo me hai fatto il form male, perchè ti basterebbe nel modulo utilizzare come name mioarray[] e in php ti ritrovi l'array già ordinato come serve a te senza fare inutili operazioni.


  • User Newbie

    [php]
    private function riordina($array){

    $nuovo = array();

    foreach ($array as $elemento) {
    array_push($nuovo, $elemento);
    }

    return $nuovo;
    }
    [/php]Semplicemente fai scorrere l'array da ricostruire con un foreach e aggiungi ogni elemento ad un nuovo array.

    🙂