Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28

    [PHP]Tagliare gli ultimi elementi di un Array

    Come risultato di un array_intersect ho il seguente valore:

    a[0]=14
    a[1]=56
    a[2]=102
    a[3]=

    oppure potrei avere

    a[0]=14
    a[1]=34
    a[2]=53
    a[3]=
    a[4]=

    il problema più grande è che la lunghezza del primo vettore è 4 e del secondo è 5.
    Ovviamente quando vado a fare una query utilizzando
    Codice PHP:
    for($c=0;$c<count($a);$c++){
        
    $query "SELECT * from tabella WHERE proprieta=".a[$c]
        
    $db->esegui($query);
        echo 
    "Proprieta: ".db->leggi(0,"prop");

    Giunti ai valori 3 e 4 succede del casino.
    Come posso eliminare dall'array il valore vuoto?
    avevo pensato a qualcosa del genere:
    Codice PHP:
    while(end($a) == $q) {
        
    array_pop($a);

    Ma sia $q=null o $q="" non vengono intercettati come i valori in ucita da end quando punta ad a[4] o a[5].

    Qualcuno sa darmi qualche mezzo alternativo o farmi capire cosa non va?

    Grazie, Ebolo.

  2. #2
    secondo me il problema è a monte, ovvero quando crei l'array con i valori vuoti...

    secondo me puoi intervenire direttamente li


    prova a postare il codice di creazione dell'array
    www.gext.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28
    Codice in ingresso:

    Codice PHP:
    for($i=0;$i count($lista_new);$i++) {
                echo 
    "lista_new[".$i."]:".$lista_new[$i]."
    "
    ;
                            
    //1
            
    }
            
            
    $infopage -= 65536;
            if ((
    $infopage) < 0) {
                
    $infopage += 65536;
                
    $STR false;
                
            } else {
                
    $querylist "SELECT id_materia FROM appcdl WHERE id_cdl=11";
                
    $dbcorsi->esegui($querylist);
                
                if (
    $dbcorsi->righe()!=0) {
                    for (
    $i=0$i $dbcorsi->righe(); $i++){
                        
    //2
                        
    $lista_this[$i]=$dbcorsi->leggi($i"id_materia");
                        echo 
    "lista_this[".$i."] :".$lista_this[$i]."
    "
    ;
                    }
                    
                    
    $lista_this=array_unique($lista_this);
                    
    sort($lista_this);
                    
                    
    $lista_new =array_intersect($lista_new,$lista_this);
                    
    sort($lista_new);
                    for(
    $i=0;$i count($lista_new);$i++) {
                           
    //3
                                       
    echo "lista_new[".$i."]: ".$lista_new[$i]."
    "
    ;
                    }
                    
                }
                
    $STR=true;
            }
            
    $infopage -= 32768;
            if ((
    $infopage) < 0) {
                
    $infopage += 32768;
                
    $ST2 false;
            } else {
                
    $querylist "SELECT id_materia FROM appcdl WHERE id_cdl=10";
                
    $dbcorsi->esegui($querylist);
                if (
    $dbcorsi->righe()!=0) {
                    for (
    $i=0$i $dbcorsi->righe(); $i++){
                        
    $lista_this[$i]=$dbcorsi->leggi($i"id_materia");
                        echo 
    "lista_this[".$i."]: ".$lista_this[$i]."
    "
    ;
                                             
    //4
                    
    }
                    
    //$lista_this=array_unique($lista_this);
                    
    $lista_new =array_intersect($lista_new,$lista_this);
                    for(
    $i=0;$i count($lista_new);$i++) {
                            
    //5
                                        
    echo "lista_new[".$i."]: ".$lista_new[$i]."
    "
    ;
                    }
                    while(
    end($lista_new) == false) {
                        
    $lista_new=array_pop($lista_new);
                    }
                    
                }
                
    $ST2=true;
            } 
    Risultati:

    //1 inizio
    lista_new[0]:14
    lista_new[1]:17
    lista_new[2]:21
    lista_new[3]:27
    lista_new[4]:34
    lista_new[5]:41
    lista_new[6]:48
    lista_new[7]:50
    lista_new[8]:54
    lista_new[9]:57
    lista_new[10]:63
    lista_new[11]:68
    lista_new[12]:70
    lista_new[13]:71
    lista_new[14]:74
    lista_new[15]:76
    lista_new[16]:79
    lista_new[17]:81
    lista_new[18]:82
    lista_new[19]:83
    lista_new[20]:87
    lista_new[21]:92
    lista_new[22]:93
    lista_new[23]:95
    lista_new[24]:97
    lista_new[25]:103
    lista_new[26]:112
    lista_new[27]:113
    lista_new[28]:119
    lista_new[29]:120
    lista_new[30]:124
    lista_new[31]:125
    lista_new[32]:132
    lista_new[33]:134
    lista_new[34]:135
    lista_new[35]:136
    lista_new[36]:137
    lista_new[37]:145
    lista_new[38]:146
    lista_new[39]:149
    lista_new[40]:156
    lista_new[41]:157
    lista_new[42]:158
    lista_new[43]:159
    //1 Fine

    //2 Inizio
    lista_this[0] :14
    lista_this[1] :26
    lista_this[2] :30
    lista_this[3] :54
    lista_this[4] :72
    lista_this[5] :96
    lista_this[6] :103
    lista_this[7] :107
    lista_this[8] :109
    lista_this[9] :121
    lista_this[10] :142
    lista_this[11] :144
    lista_this[12] :146
    lista_this[13] :148
    lista_this[14] :149
    lista_this[15] :151
    lista_this[16] :154
    lista_this[17] :156
    //2 Fine

    //3 Inizio
    lista_new[0]: 14
    lista_new[1]: 54
    lista_new[2]: 103
    lista_new[3]: 146
    lista_new[4]: 149
    lista_new[5]: 156
    //3 Fine

    //4 Inizio
    lista_this[0]: 14
    lista_this[1]: 26
    lista_this[2]: 29
    lista_this[3]: 30
    lista_this[4]: 33
    lista_this[5]: 54
    lista_this[6]: 72
    lista_this[7]: 91
    lista_this[8]: 103
    lista_this[9]: 109
    lista_this[10]: 121
    lista_this[11]: 143
    lista_this[12]: 144
    lista_this[13]: 145
    lista_this[14]: 147
    lista_this[15]: 149
    lista_this[16]: 150
    lista_this[17]: 151
    lista_this[18]: 154
    //4 fine

    //5 Inizio
    lista_new[0]: 14
    lista_new[1]: 54
    lista_new[2]: 103
    lista_new[3]:
    //5 Fine
    Non riesco a capire perchè al riferimento 5 crea un array con un valore vuoto che fral'altro non riesco ad intercettare. Gli array precedenti sono tutti pieni

    Ebolo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28
    Nessuno?!

    Grazie, Ebolo.

  5. #5
    come crei l'array al riferimento 5??? non ho voglia di leggermi 50 righe di codice...
    www.gext.it

  6. #6
    array_intersect() returns an array containing all the values of array1 that are present in all the arguments. Note that keys are preserved.
    prova a usare foreach per fare la stampa. o meglio ancora var_dump($arr) o al limite print_r($arr) e vedi se scopri qualcosa

    ciao
    Windows mom: «Finish your veggies! There are processes in Ubuntu that are starving to death!»
    NoWhereBlog
    FlatPress Blog Flat file, valido xhtml, espandibile

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28
    Originariamente inviato da tarini
    come crei l'array al riferimento 5??? non ho voglia di leggermi 50 righe di codice...
    Così

    Codice PHP:
    $querylist "SELECT id_materia FROM appcdl WHERE id_cdl=10";
                
    $dbcorsi->esegui($querylist);
                if (
    $dbcorsi->righe()!=0) {
                    for (
    $i=0$i $dbcorsi->righe(); $i++){
                        
    $lista_this[$i]=$dbcorsi->leggi($i"id_materia");
                        echo 
    "lista_this[".$i."]: ".$lista_this[$i]."
    "
    ;
                                             
    //4
                    
    }
                    
    //$lista_this=array_unique($lista_this);
    ------>   $lista_new =array_intersect($lista_new,$lista_this);  <-------
                    for(
    $i=0;$i count($lista_new);$i++) {
                            
    //5
                                        
    echo "lista_new[".$i."]: ".$lista_new[$i]."
    "
    ;
                    } 
    Provo pure quello che ha detto NoWhereMan e vi faccio sapere!

    Ebolo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28
    array(4) { [0]=> string(2) "14" [1]=> string(2) "54" [2]=> string(3) "103" [4]=> string(3) "149" }

    lista_new[0]: 14
    lista_new[1]: 54
    lista_new[2]: 103
    lista_new[3]:


    Ma cosa succede?
    Il primo è il dump dell'array e il secondo la visualizzazione tramite lun ciclo for :|

    Help!

    Ebolo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    28
    C'è un modo + efficacie di prendere i valori da dentro un array invece di un ciclo for?

    Ebolo.

  10. #10
    Originariamente inviato da Ebolo
    array(4) { [0]=> string(2) "14" [1]=> string(2) "54" [2]=> string(3) "103" [4]=> string(3) "149" }

    lista_new[0]: 14
    lista_new[1]: 54
    lista_new[2]: 103
    lista_new[3]:


    Ma cosa succede?
    Il primo è il dump dell'array e il secondo la visualizzazione tramite lun ciclo for :|

    Help!

    Ebolo.
    come puoi vedere 149 è all'indice 4 dell'array, e non 3, perché array_intersect preserva le chiavi dell'array

    Usa foreach($arr as $key=>$val) {} per attraversarlo!

    ciao!
    Windows mom: «Finish your veggies! There are processes in Ubuntu that are starving to death!»
    NoWhereBlog
    FlatPress Blog Flat file, valido xhtml, espandibile

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.