Visualizzazione risultati 1 fino 6 di 6

Discussione: Problema con il COUNT degli ARRAY

  1. #1
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito Problema con il COUNT degli ARRAY

    Se conto gli elementi di questo array con COUNT_RECOURSIVE
    Codice PHP:
    $t = array(
    array (
    'controllo' => ""),
    array (
    'giorno' => ""),
    array (
    'orario' => ""),
    array (
    'luogo' => ""),
    array (
    'descrizione' => ""),
    array (
    'responsabile' => ""),
    array (
    'tipo' => "")
    );
    Quanto mi dovrebbe dare ?

    Io penso 7, invece mi da' 8. Perche'? C'e' un valore indice ?

    C'e' un metodo per contare la grandezza dell'array che contiene gli altri 7 ? Se io faccio COUNT semplice mi da sempre 7 (che e' il numero degli array interni).

    GRAZIE
    Ultima modifica di dreadnaut : 13-06-2008 alle ore 15.09.40 Motivo: + tag [php] per leggibilità

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    perché conti in modo ricorsivo, quindi prima conta l'array stesso, poi i suoi sette elementi, per un totale di 8. count($t) invece ti ritorna giustamente 7, ma se vuoi la somma di ciò che sta dentro ciò che sta dentro, direi COUNT_RECURSIVE - count($t) - 1
    Ultima modifica di dreadnaut : 13-06-2008 alle ore 15.11.33

  3. #3
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito

    forse il -1 finale non ci va.
    ---

    Se conto gli elementi di questo array con COUNT_RECOURSIVE
    Codice PHP:
    $t = array(
    array (
    'numero_evento' => ""),
    array (
    'controllo' => ""),
    array (
    'giorno' => ""),
    array (
    'orario' => ""),
    array (
    'luogo' => ""),
    array (
    'descrizione' => ""),
    array (
    'responsabile' => ""),
    array (
    'tipo' => "")
    );
    se riempo una sola volta i vari campi mi dà 10;
    se li riempo due volte mi dà 18,
    se li riempo tre volte mi dà 26.

    Non capisco il criterio. sembra che parta da 2.
    Poi ne aggiunge 8 (come i sub-array) ogni giro (e in questo sarebbe corretto).

    SOLUZIONE:

    quello strano conteggio era dovuto ad un errore, quando riempivo l'array in uno dei campi l'inidce "primario" era "i" invece che "$i", e questo creava il caos ... quindi ora e' tutto normale: COUNT_RECOURSIVA da <numero_campi>+1 per ogni "riga".
    Ultima modifica di esotica : 29-06-2008 alle ore 10.16.01

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    non riesco ad immaginare come tu riempia quell'array... metti il tutto in una pagina di prova, ed ogni volta che aggiungi stampa un po' di informazioni utili, incluso un print_r() dell'array stesso. Mi sembra però che tu stia creando una struttura dati assai strana. Non ti viene più semplice trasporla?
    Codice PHP:
    // inzializzi vuoto
    $t = array();

    // aggiungi un nuovo record
    $t[] = array(
    'numero_evento' => "...",
    'controllo' => "...",
    'giorno' => "...",
    'orario' => "...",
    'luogo' => "...",
    'descrizione' => "...",
    'responsabile' => "...",
    'tipo' => "..."
    );
    con la quale contare diventa decisamente più semplice.
    Ultima modifica di dreadnaut : 23-06-2008 alle ore 00.14.18

  5. #5
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito

    innanzitutto ti ringrazio per la risposta ...

    a me serve che ogni elemento dell'array abbia quelle otto informazioni (cosi' il primo, cosi' il secondo, ...), leggendo su php.net avevo capito di fare con ogni elemento come array per avere cio' che mi serve.
    Pero' se cosi' viene, diventa tutto piu' semplice.

    Quindi il primo elemento avra' quegli otto dati richiamabili con $nome_array[indice]['tipo'] (al posto di tipo gli altri 7 campi) ? Con indice che parte da zero ?

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    se il tuo scopo è quello, questo sistema è decisamente più comodo. Gli array partono da zero, e se ti occupi di inserirli, ogni elemento avrà lo stesso numero di campi all'intero, accessibili con $variabile[...][...]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •