Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    array_search di oggetti

    ciao...
    ho un array popolato da oggetti
    Codice PHP:
    $array_ogg = array();
    $session = new Session();
    $session2 = new Session();

    $array_ogg[]=$session;
    $array_ogg[]=$session2;

    echo 
    array_search($session,$array_ogg); 
    ecco cosa ottengo :
    Warning: array_search(): Wrong datatype for first argument

    Perche? dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    come non detto:berto:

    ....non includevo la classe Session.....
    sorri
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    mi ero sbagliato...Provando bene non funziona
    ho sempre questo cavolo di errore :
    Warning: array_search(): Wrong datatype for first argument

    Ricordo che sono su php4.3.10 ......

    cmq provando a mettere nell'array delle stringhe ....il tutto funziona....

    E' con i miei oggetti che non va...come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    inoltre faccio notare che su php5 devo scrivere anche il 3° parametro per array_search altrimenti da sempre zero (ovviamente sto cercando il secondo oggetto...quello alla cella 1):
    echo array_search($session2,$array_ogg,true); =====> da 1
    echo array_search($session2,$array_ogg); =====> da 0

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    sto continuando a provare....ho trovato anche
    http://bugs.php.net/bug.php?id=20681
    ma comunque...con la funzione proposta da questo sito....non funziona....

    aiutooo

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    a chi potesse servire...ecco la soluzione
    Codice PHP:

     
    function _array_search($needle,$haystack ,$strict=false) {
            if (!
    is_array($haystack)) return false;
            for (
    $i=0$i<count($haystack); ++$i) {
                if (
    $strict) {
                   
    // STRICT
                       
    if ((get_class($needle)==get_class($haystack[$i])) && ($needle==$haystack[$i])) 
                           return 
    $i;
                   }else{
                   
    // NO STRICT
                   
    if ($needle==$haystack[$i]) 
                       return 
    $i;
                   }
             }
             return 
    false;
        } 

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.