Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181

    [PHP] Matrice a 3 colonne

    Ciao a tutti,

    premetto che non tutti i giorni programmo in php, ma sto perdendo la testa da qualche giorno per la costruzione di una matrice in php.
    Il problema è il seguente: ho un file txt in cui ci sono delle stringhe secondo un tracciato record, non faccio altro che memorizzare il file in un vettore di stringhe, poi ho un altro vettore dove sono memorizzati i nomi di tutti i soci. Fin qui nessun problema, quello che vorrei fare è costruire un matrice che per ogni socio, visulizzi una media per l'anno in questione a partire dal 2010 fino all'anno corrente.
    Quindi ho sviluppato il seguente codice e stranamente per due colonne(cioè l'anno 2010 e 2011 quando il limite del for è settato a 2011) funziona, mentre per le 3 colonne (compreso l'anno corrente) non costruisce più la matrice.
    Spero di essere stato chiaro nell'esposizione del problema.

    Ecco il codice:

    codice:
    	
    for($i=0 ; $i<$len ; $i++)
    {			
         $j = 0;			
         for($k=2010 ; $k<=$annoint ; $k++)			
        {				
    	$sumAnno = 0;
    	$countAnno = 0;
    	for($l=0 ; $l<$lenStr$l++)
    	{					
    		$vett = explode("|",$vettStr]);
    		$vettContract = explode("\\", $vett[1]);
    		if ((((int)$vettContract[4]) == $k) and (strcmp($vett[5],$vettPtn[$i]) == 0))
    		{	
    			$sumAnno = $sumAnno + (int)$vett[7];
    			$countAnno = $countAnno + 1;
    		}
    	}
    	if ($countAnno != 0)
    	{
      	            $vettMediaPtn[$i][$j] = number_format(round($sumAnno / $countAnno,1),1,',','.');
    	}	
    	else
                 {
    		$vettMediaPtn[$i][$j] = 0;
    	}
    	$j = $j + 1;  
      }
    }
    Grazie mille in anticipo.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,469
    A dire il vero è poco chiaro.
    Dovresti spiegare cosa rappresentano le variabili che usi, alcune si capisce, altre no.
    Poi mostra anche un esempio di cosa è contenuto nel file txt.

    Ad ogni modo si vede che vieni da altri linguaggi e non usi molto PHP, penso che 2 cicli for potresti sostituirli con foreach evitandoti un po' di contatori.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Ciao Alhazred, grazie per il soccorso e soprattutto per la comprensione alla non consueta programmazione in php.
    Cerco di spiegare meglio, per quello che nelle mie possibilità, il processo con le varie variabili adoperate.
    C'è un file txt di partenza che contiene tutti i dati(che per ovvie ragioni non posso mostrare in quanto dati aziendali), questo file di partenza viene memorizzato in un vettore di stringhe chiamato $vettStr. Per chiarire meglio com'è fatto il tracciato record, abbiamo: Sede|Path|Contratto|Flag|Cliente|Socio|Manager|Con fermato|Dimensione|NumeroFileContenuti|NumeroSotto cartelleContenute|Permission.
    Successivamente, vengono presi i nomi di tutti i soci, a partire da un altro file txt e memorizzati in un vettore chiamato $vettPtn.
    Quindi ricavo le relative lunghezze con la funzione count ed ottengo :
    $lenStr = count($vettStr);
    $len = count($vettPtn);
    A questo punto cosa faccio, per ogni socio e per ogni anno di contratto(ottenuto dal path del tracciato record) fino all'anno corrente, ottengo le varie somme delle dimensioni dal vettore delle stringhe e le memorizzo in una matrice.

    Facendo varie prove ho scoperto che fino ad un certo punto della matrice i valori vengono calcolati e visualizzati, poi dall 11015-esimo elemento no, a questo punto mi sorge il dubbio che è un problema di memoria del pc dove risiedono i servizi di apache e php dove girano i vari script in quanto su tale pc cmq girano altri job che impegnano la macchina.

    Cosa ne pensate?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Scusami ma perchè non utilizzi un database e risolvi tutti problemi?

    C'è un file txt di partenza che contiene tutti i dati(che per ovvie ragioni non posso mostrare in quanto dati aziendali)
    Un altro motivo per usarlo, e intanto un file .txt è sicuro xD

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Ciao RoTeam,

    grazie per il suggerimento. La tua osservazione conferma la mai tesi oggetto di continue lotte, visto che vorrei facilitarmi la vita.

    Ad ogni modo ho risolto il problema, sul pc dove sono attivi i servizi per eseguire gli script php se non gira nessun job funziona.

    Grazie a tutti

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.