Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema array_search()

    Sto avendo un problema con la funzione array_search()
    Ho un file txt dove estraggo dei valori con @file() questo file contiene i seguenti dati:
    1111111
    2222222
    3333333

    Ora se estraggo i dati dall'array in questo modo:

    Codice PHP:
    $readFile = @file("prova.txt");

    print_r($readFile); 
    giustamente mi da questo valore:
    Array ( [0] => 1111111111 [1] => 22222222222 [2] => 3333333333 )

    ma se vado a fare questa ricerca:
    Codice PHP:
    $key array_search("2222222"$readFile);
    unset(
    $readFile[$key];
    print_r($readFile); 
    mi cancella sempre la chiave 0:
    Array ( [1] => 22222222222 [2] => 3333333333 )

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    764
    certo, il valore del primo parametro della funzione array_search non viene trovato nell'array $readFile restituendo false (=0), per cui poi viene cancellato il valore con chiave 0.

    Se utilizzi
    $key = array_search("22222222222", $readFile);
    dovrebbe funzionare.
    eXvision

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Esattamente, come ha detto brodik, tu stai cercando "2222222" (sette 2), che dalla stampa dell'array che proponi non c'è, c'è invece "22222222222" (undici 2) quindi array_search() ti ritorna false che equivale a 0 e se non fai controlli fai danno come in questo caso, perché vai a cancellare un elemento che non vorresti cancellare.

    Mettici un if che controlli se $key !== false, non solo !=, così sei sicuro se hai 0 o false e se non hai false procedi alla cancellazione, altrimenti no. In questo caso cadresti nella condizione "altrimenti no" e non cancelleresti per sbaglio il primo elemento.

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.