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

    array multidimensionali...

    Salve ragazzi vorrei chiedervi qualche delucidazione sugli array multidimensionali, nel senso come si comportano? associano ad una variabile più indici?

    ad esempio io ho questa variabile:

    $vals[$i]['type']

    se faccio echo $vals[$i]['type'];

    cosa ottengo?

    Grazie a tutti :berto:

  2. #2
    Gli array multidimensionali (nel tuo caso due dimensioni) si comportano come matrici.
    Quelli a tre dimensioni (non so se php li supporta, mai provato, ma penso di sì) sono array di matrici e così via...

    Gli indici (nel tuo caso di un array a due dimensioni) non sono altro che l'indicazione della riga (il primo) e della colonna (il secondo).

    Con "echo $vals[$i]['type'];" se $i è un numero non farai altro che estrarre il valore "type" nella riga $i-1 (ricorda che gli indici degli array partono da 0).

    Spero sia questo che volevi sapere, altrimenti non ho capito la domanda
    Nemesis

  3. #3
    Ciao sei stato chiarissimo, e grazie mille, ma il problema di fondo che mi sono posto io è:
    In quale occasione è comodo usare questi array????

  4. #4
    Ti dirò... personalmente non uso molto spesso gli array e comunque al massimo a una dimensione tipo $_POST, $_GET, $_SESSION oppure per manipolare le date con explode().

    Un array bidimensionale, per esempio, potrebbe essere utile per salvare momentaneamente delle informazioni per visualizzarle o modificarle prima di scrivere su più di un record nel database oppure per elaborare dei dati, ma che non vogliamo inserire nel database.

    Un esempio banale: inserisci dati tramite un form relativi a più persone (tipo nome, cognome, ecc.) per creare un report, un preventivo o qualsiasi altra cosa che poi elaborerà un'altra pagina (per esempio crea un pdf per stamparlo). Se non hai bisogno di salvare queste informazioni sarebbe inutile scriverle in un database e poi eliminarle subito dopo.

    Dipende da cosa devi fare, ma almeno personalmente non ho mai avuto l'esigenza di usare array a più dimensioni.
    Nemesis

  5. #5
    ciao e grazie ancora per la pazienza che mi dedichi, ma la voglia di capire è forte...ti posso chiedere una cortesia, visto che hai allettato la mia curiosità, potresti farmi un esempio pratico di come si fa un passaggio di parametri da una form alla stampa su PDF tramite array multidimensionali???

    Se non puoi non fa niente, grazie mille lo stesso.


  6. #6
    Ciao e scusa per il ritardo. Ho letto solo ora la tua risposta.

    A parte che potresti direttamente prendere i dati del form e metterli in pdf senza bisogno di array, ma facciamolo per puro divertimento.

    Per il tuo problema diamo per scontato che tu abbia creato un form (ad esempio caselle di testo ma andrebbe bene qualsiasi altra cosa) che in pratica simuli una tabella (righe e colonne) tipo database e che poi vuoi riportare il tutto in pdf con il sistema che più ti aggrada. Io ad esempio uso fpdf.

    Mettiamo anche che hai chiamato i campi del modulo 1, 2, 3, 4.... e che sai quante righe e colonne ci sono (numero fisso o variabile poco cambia, tanto lo sai già in ogni caso dalla pagina che crea il form). Diciamo 5 colonne e 4 righe.

    Risolvi tutto con i classici 2 cicli for annidati.

    Codice PHP:
    $num_col 5;
    $num_righe 4;
    $campo 1;

    for (
    $i 0$i $num_righe$i++) {
       for (
    $j 0$j $num_col$j++) {
       
    $tuo_array[$i][$j] = $_POST[$campo];
       
    $campo $campo 1;
       }

    Quando poi andrai a creare il pdf non farai altro che sostituire

    $tuo_array[$i][$j] = $_POST[$campo];

    con

    echo $tuo_array[$i][$j];

    Se hai studiato un po' di programmazione saprai benissimo che l'unica cosa a cui devi fare attenzione è mettere come condizione finale < e non <= perché gli indici degli array iniziano da 0 e quindi se hai 5 colonne l'ultima colonna ha indice 4.

    Per convenzione, poi, si chiama [i] l'indice della riga e [j] quello della colonna quindi per non sbagliare elabora i dati per riga e non per colonna, metti nel ciclo for più esterno $i e come condizione il controllo con il numero di righe, in quello interno $j e il controllo con il numero di colonne.

    Per creare il pdf (ti parlo sempre di fpdf) ci sono ottime classi per interpretare l'html, ma per qualcosa di semplice, con colonne di larghezza definita, potrai creare delle celle adiacenti, con o senza bordo, andando ad impostare le coordinate x e y con dei semplici conti facendo delle moltiplicazioni con $i e $j
    Nemesis

  7. #7
    Ok grazie mille davvero per la risposta, ero interessato perche dovevo gestire la classifica di un sito di una squadra di calcio a 5 e la classifica appunto è un array multidimensionale...

    Ciao alla prox

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.