Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    un for intricatissimo....

    Chi mi aiuta a dipanare la matassa... ??? VVoVe:

    Codice PHP:

     
    else        echo "<td align=\"center\" style=\"color: red;\">$numero</td>"
      if (
    is_int(($n

    for (
    $y=0;$y<count($arraylunghezzevarie);$y++) 

        
    $arraylunghezzevarie[$y]))) { 

      echo 
    "<td>---[b]$punteggio[/b]---"

    In sostanza se al posto di $arraylunghezzevarie[$y] metto
    qualsiasi riferimento preciso dello stesso array... funzia tutto a meraviglia..
    es $arraylunghezzevarie[0] quando invece tento di dinamicizzare gli indici
    per comprenderli tutti in modo dinamico ovviamente mi da un simpatico
    e comprensibilissimo... parse error...

    ho bisogno di mettere quel for in modo che non dia fastidio...

    qualcuno/a mi aiuta???

    GRAZIE INIFINITE


  2. #2
    Se magari spieghi il tuo obiettivo, si vede di trovare una soluzione alternativa al "for intricatissimo"


  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Il mio obiettivo... è quello già postato sopra.. ma...

    Proverò a spiegarmi in modo differente...

    Ho una serie di combinazioni di lunghezza variabile...
    Nel senso che qualcuna sarà di 3 elementi, altre saranno di due e altre ancora di quatto fino ad un massimo di dieci elementi...
    Queste sono contenute in un file txt del tipo

    1,2,3
    34,45,90,2
    19,90
    22,89,32,76,44

    ecc...

    Se fossero tutte di ugual numero di elementi non ci sarebbe problema per il for in quanto basterebbe un:


    if (is_int(($n/$ugualnumero)) {

    echo "<td>---$punteggio---";

    ecc...

    mentre $ugualnumero in realtà sarà seguendo l'esempio fatto la prima volta pari a 3 la seconda volta pari a 4 la terza volta pari a 2 e l'ultima volta pari a 5... quindi dovrà cambiare
    necessariamente dinamicamente.. ed eccoci arrivati all'esigenza del for...

    Spero di essere stato un pò più chiaro stavolta e comunque sia sono disponibilissimo a cercare di esserlo ancor di + fino alla risoluzione del problema

    Grazie per ora


  4. #4
    Stiamo perdendo di vista il punto principale: hai una serie di combinazioni di numeri, e cosa ci devi fare?

  5. #5
    ma lol ti sembra codice quello?

    mettere un for dentro un if sei pazzo

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Proverò a spiegare meglio il target...

    Originariamente inviato da k.b
    Stiamo perdendo di vista il punto principale: hai una serie di combinazioni di numeri, e cosa ci devi fare?
    Dunque essenzialmente dal file txt del tipo:

    1,2,3
    34,45,90,2
    19,90
    22,89,32,76,44

    devo conteggiare tramite script gli elementi di ogni combinazione...

    e metterli in una tabella dinamica la quale dovrà essere del numero di celle in orizzontale pari al numero di elementi della combinazione più lunga... (in questo caso 5)

    per adesso mi basta questo...

    se ho un file con tutte combinazioni uguali per numero di elementi componenti (es.3) del tipo:

    A,B,C
    D,E,F
    G,H,I

    non ho problemi...
    la tabella mi si crea correttamente (in questo caso formato:3x3)

    mentre se le combinazioni sono di lunghezza diversa appunto... del tipo:

    A,B,C,D
    E,F
    G,H,I
    L,M,N,O,P,Q

    iniziano i problemi....

    Sperando di aver chiarito ancor meglio il mio target...

    Un ringraziamento a tutti/e


  7. #7
    Non ti conviene fare una passata preliminare dei dati nel txt per determinare qual è la sequenza più lunga?
    Per esempio puoi scrivere una funzione del genere

    function max_length(file)
    {
    $max_length = 0;
    $delimiter = ',';

    $fr = fopen(file,'r');
    while($line=fgets($fr))
    {
    $tmp = "";
    $line = preg_replace('`[\r\n]$`','',$line);
    $tmp = explode($delimiter,$line);
    $actual_length = count($tmp);
    if(actual_length>$maxlength)
    $max_length=$actual_length;
    }
    fclose($fr);

    return max_length;
    }

    Magari aggiungendo qulache controllo per verificare se il file esiste, se è leggibile, se è in lock e se è vuoto.

    A questo punto hai determinato il numero di colonne della tua tabella quindi puoi riempirla.
    Non so se è la soluzione al tuo problema, ma come detto anche sopra, il post dovrebbe essere più chiaro come linguaggio, più dettagliata come spiegazione e magari con del codice

    Una domanda: ma il file di testo lo generi tu o ti arriva come per magia da qualche altra applicazione?
    Altrimenti la cosa più semplice sarebbe modificare lo script (o il programa) che genera il file coi punteggi in modo tale che memorizzi da qualche parte il numero di elementi della riga più lunga.

    Comunque poi nel tuo for 'intricatissimo' dovresti gestire l'inserimento dei punteggi nella tabella e al termine eseguire un altro for per aggiungere le colonne vuote.

    Dovresti comunque specificare se la tabella viene rigenerata ogni volta oppure se i dati già inseriti rimangono e appendi i nuovi dati all'ultima riga. Se così fosse ti conviene creare direttamente una tabella id 10 elementi.

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    In effetti...

    Non avrei alcun problema nel disporre comunque sia di una tabella a 10 colonne...
    Il fatto è che così facendo anche i numeri delle combinazioni generate mi si aggregano
    visivamnete in modo non voluto...

    sempre secondo l'es di prima...

    se ho giocate.txt contenente :

    A,B,C,D
    E,F
    G,H,I
    L,M,N,O,P,Q

    e decido per una tabella a 10 colonne...

    per adesso mi viene fuori qualcosa di questo tipo:

    A,B,C,D,E,F,G,H,I,L
    M,N,O,P,Q

    ovvero sia tutti gli spazi della riga indipendentemnete dalla lunghezza della combinazione vengono riempiti... e il controllo dei punteggi anzichè venir fatto su 4 comb di lunghezze diverse viene effettuato su due comb di cui una ha il massimo della lunghezza (10) e l'altra la rimanenza... (nell'es:5)

    se riuscissi a fare in modo di stampare a video una tabella sempre di 10 colonne con dentro secondo l'esempio nella prima riga i 4 elementi della 1° comb nella seconda riga i 2 elementi della 2° comb e nella 3° riga i 3 elementi della terza comb e nella 4° riga i 6 elementi della quarta comb... avrei risolto!

    Grazie comunque


  9. #9
    Ti posto uno pseudo pseudocodice perchè sono di fretta:

    $maxelements = getmaxelements();
    $handler=fopen();
    <table>
    while($line=gets($handler))
    {
    $tmparray=explode(',',$line);
    <tr>
    for($i=0;i<count($tmparray);i++)
    <td> $line[i] </td>
    for(i=0;i<($maxelements-count($tmparray);i++)
    <td></td>
    <tr>
    }
    </table>

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ho provato a phpzzarla.. ma...

    mi da sempre errore.. e non riesco a capire perchè...

    Codice PHP:

    $maxelements 
    getmaxelements();
    $handler=fopen();
    echo 
    "<table>";
    while(
    $line=gets($handler))
    {
    $tmparray=explode(',',$line);
    echo 
    "<tr>";
    for(
    $i=0;$i<count($tmparray);i++) {
    echo 
    "<td> $line[i] </td>";
    for(
    i=0;i<($maxelements-count($tmparray));i++) {
    echo 
    "<td></td>";
    echo 
    "<tr>";
    }
    }
    }
    echo 
    "</table>"
    Probabilmente è solo.. stanchezza...
    Se riesci ad individuarlo te...
    La linea è quella n.10

    Thanks!


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.