Visualizzazione dei risultati da 1 a 3 su 3

Discussione: in_array

  1. #1

    in_array

    ciao, la funzione in_array si legge tutto l'array prima di ritornare un valore true o false?
    Questa funzione è precisa o potrebbe sbagliare?

  2. #2

    Re: in_array

    sul fatto che sia precisa direi di si, almeno, a me non ha mai dato problemi.
    Sulla prima domanda non saprei, istintivamente, visto che deve solo ritornare true se trova il valore o false se non lo trova, direi di no. Lo legge tutto solo nel caso in cui non trova il valore e arriva quindi fino in fondo; se invece lo trova smette nel momento in cui lo trova. Lo vedo come uno spreco di tempo andare a leggere tutto l'array se si trova prima il valore specificato. Ma ripeto questa è solo una mia interpretazione, di più non so dirti.

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    uhm si deve essere così. Il problema è che ho un errore nel mio codice ma non riesco a capire perchè fa una determinata cosa quando la logica è quella.
    il problema è un problema che mi sto portando dietro da un po. Ho fatto varie modifiche a questo pezzo di codice e adesso è quasi perfetto tranne che per questa cosa.
    Codice PHP:
    <?
    $sqlId
    ="SELECT IdChiamata FROM Call where Matricola='".$Matr."' ";
    $risId mysql_query($sqlId) or die(mysql_error());    
    //Per ogni matricola ho un tot di Id    
    while($rId=mysql_fetch_array($risId)){                $IdCall $rId["IdChiamata"];                 
           if(
    $OldId == ""){//La prima volta quando l'array è vuoto         $OldId[] = $IdCall;                               ?>
         [url="TabellaHD.php?loid=2&id=<?=$id?>&IdCall=<?=$IdCall?>"][b]<? echo $IdCall ?>[/url]                 <? $OldId[] = $IdCall; break;                 
           }else{
    //tutte le volte successive             
               
    if(in_array ($IdCall,$OldId)){
              
    $var 0;//se idcall gia esiste in array              
            
    }else{                                $var 1;//non esiste                 
               
    }        
           if(
    $var == 1){
            
    $OldId[] = $IdCall;
        
        
    ?>                                [url="TabellaHD.php?loid=2&id=<?=$id?>&IdCall=<?=$IdCall?>"][b]<? echo $IdCall ?>[/url]                <?                                 break;
          }
       }                            
    }
    //while  
    ?>
    L'array OldId lo riempio sempre dell'id che scrivo a video perchè la volta dopo se ritroverò la stessa matricola avrò anche gli id gia scritti dal momento che li recupera di nuovo tutti.
    Inoltre invio l'array tramite querystring ad un'altra pagina per poi recuperarlo di nuovo in questa pagina. Faccio questo perchè ho usato uno script per la paginazione dei dati, quindi visualizzo 20 dati per pagina.
    La prima pagina di dati è tutto ok, cioè gli id me li scrive bene e in ordine,la seconda pagina invece mi scrive gli id che ho gia inserito nella pagina precedente per una determinata matricola.

    Scusate è un po complesso spiegarlo però mi serve davvero il vostro aiuto. Se volete domandate per capire meglio la situazione. Grazie.

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.