Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129

    Creare n array da un file .cvs

    Salve
    Ho questa tabbella a doppia entrata:
    esempio.jpg

    Ho lo script che mi conta le righe e le colonne:
    Codice PHP:
    <?php
        $elenco 
    = array();
        
        
    $righe 0;
     
    $colonne=0;
       if ((
    $handle fopen('amici.csv''r')) !== FALSE) {
            while ((
    $data fgetcsv($handle1000",")) !== FALSE) {
                
    $righe++;
        }
     }
     
    $righe$righe-1;
     
    $colonne$righe;
     echo 
    $righe;
     
    ?>
    Come faccio a creare righe x colonne array di 3 elementi, che contengono tutte le coppie possibili, per esempio:
    Array1-->[Antonio;Antonio;0]
    Array2-->[Antonio;Roberto;1]
    Array3-->[Antonio;Francesca;0] ....

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    puoi:
    - memorizzare la prima riga per tenere le intestazioni di colonna
    - ciclare le righe successive e per tenendo fisso il primo campo (il nome della riga) ciclare le colonne di intestazione e prendi il risultato corrispondente nella riga

    in pseudo codice

    Codice PHP:
    $intestazioni = array(" ""nome1""nome2""nome3")
    $dati = array();

    // apri il file
    while(riga per righe) {
        foreach(
    $intestazioni as $chiave => $intestazione) {
            
    $dati[] = array($riga[0], $intestazione$riga[$chiave])
        }


  3. #3
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Quote Originariamente inviata da clasku Visualizza il messaggio
    puoi:
    - memorizzare la prima riga per tenere le intestazioni di colonna
    - ciclare le righe successive e per tenendo fisso il primo campo (il nome della riga) ciclare le colonne di intestazione e prendi il risultato corrispondente nella riga

    in pseudo codice

    Codice PHP:
    $intestazioni = array(" ""nome1""nome2""nome3")
    $dati = array();

    // apri il file
    while(riga per righe) {
        foreach(
    $intestazioni as $chiave => $intestazione) {
            
    $dati[] = array($riga[0], $intestazione$riga[$chiave])
        }

    Grazie io avevo pensato di fare due for annidati tipo:

    Codice PHP:
    $righe$righe-1;
     
    $colonne$righe;
     
    $r$righe;
     
    $c$colonne;
     
      for (
    $i=1$i<$r$i++) {
       
        for (
    $j=1$j<$r$j++) {
                    
        }      
      } 
    non so cosa scriverci per inserire i valori del file .csv nell'array

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    penso possa andare bene una cosa di questo tipo

    Codice PHP:
    <?php
    $csv 
    "data.csv";
    $combinazioni = array();

    $i 0;

    if ((
    $handle fopen($csv'r')) !== FALSE) {
        while ((
    $data fgetcsv($handle1000";")) !== FALSE) {
            if(
    $i == 0) {
                
    $col $data// assegni l'intero array della riga del CSV all'array delle intestazioni di colonna
                
    $i++;
                continue;
            }
            
    // scorri le intestazioni e compili un array per ogni combinazione (il risultato è un array a due dimensioni per ogni riga
            
    foreach($col as $k => $c) {
                if(
    $k == 0) {
                    continue;
                }
                
    $combinazioni[$data[0]][] = array($data[0], $c$data[$k]);
            }
        }
    }

    var_dump($combinazioni);
    ?>
    il csv è fatto così

    codice:
    ;Antonio;Giovanni;Andrea
    Antonio;0;1;0
    Giovanni;1;1;0
    Andrea;0;0;0

  5. #5
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Quote Originariamente inviata da clasku Visualizza il messaggio
    penso possa andare bene una cosa di questo tipo

    Codice PHP:
    <?php
    $csv 
    "data.csv";
    $combinazioni = array();

    $i 0;

    if ((
    $handle fopen($csv'r')) !== FALSE) {
        while ((
    $data fgetcsv($handle1000";")) !== FALSE) {
            if(
    $i == 0) {
                
    $col $data// assegni l'intero array della riga del CSV all'array delle intestazioni di colonna
                
    $i++;
                continue;
            }
            
    // scorri le intestazioni e compili un array per ogni combinazione (il risultato è un array a due dimensioni per ogni riga
            
    foreach($col as $k => $c) {
                if(
    $k == 0) {
                    continue;
                }
                
    $combinazioni[$data[0]][] = array($data[0], $c$data[$k]);
            }
        }
    }

    var_dump($combinazioni);
    ?>
    il csv è fatto così

    codice:
    ;Antonio;Giovanni;Andrea
    Antonio;0;1;0
    Giovanni;1;1;0
    Andrea;0;0;0
    Grazie mille

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.