Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Cercare in un Array
Forum - PHP - Cercare in un Array

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 16:06
Giovedì, 03/09/2009
Salve, Avrei Bisogno di una funzione che cerchi dentro un array una parola che è il valore di una variabile e che mi restituisca un'altra variabile contenente tutta la riga in cui è contenuta la parola; es:
questo è il mio array:
  $elenco_nomi [0] = giorgio|rossi;
  $elenco_nomi [1] = nicola|laurentis;
  $elenco_nomi [2] = filippo|ronconi;
la variabile da cercare è questa
  $cerca=nicola;
e il risultato dovrebbe essere questo
  $risult=nicola|laurentis;
E vorrei anche che se la parola cercata non esite la variabile $risult assumesse il valore 0

PS:Grazie in anticipo per le risposte. Visto che ho provato cercando su internet e non ci ho capito molto, non rispondetemi con link ad altri siti ma rispondetemi con dei sorgenti magari anche commentati.
Confido in voi Esperti

Ultima modifica effettuata da blackboss il 03/09/2009 alle 16:07
PM Quote
Avatar
kejan (Normal User)
Newbie


Messaggi: 20
Iscritto: 12/08/2009

Segnala al moderatore
Postato alle 18:31
Giovedì, 03/09/2009
prova cosi
Codice sorgente - presumibilmente PHP

  1. $cerca = array ("giorgio","nicola","filippo");
  2. if(in_array("giorgio",$cerca)) {
  3. echo "si c'e giorgio";
  4. }else{
  5. echo "no, non c'e ";
  6. }


PM Quote
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 21:12
Giovedì, 03/09/2009
Grazie ma non è quello di cui avevo bisogno

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 23:43
Giovedì, 03/09/2009
Fai una cosa del genere:
Codice sorgente - presumibilmente Php

  1. <?php
  2. foreach ($mioarray as $element)
  3. {
  4.     //cerco la posizione del testo nella stringa
  5.     $pos = strpos($element,$cerca);
  6.     if ($pos === false)
  7.     {
  8.      //Non trovato
  9.     {
  10.     else
  11.     {
  12.      //trovato
  13.      $risultato = $element;
  14.      //prendo tutta la riga
  15.     }
  16. }


?>

Ultima modifica effettuata da manvb.net il 03/09/2009 alle 23:43
PM Quote
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 1:44
Venerdì, 04/09/2009
Grazie, ma mi dà il seguente errore quando apro la pagina:
Codice sorgente - presumibilmente PHP

  1. Parse error: syntax error, unexpected T_ELSE in C:\...\array.php on line 13


(Io uso easyphp e testo le pagine sul mio pc) mi andrebbe anche bene che mi desse la chiave, visto che si tratta di array con chiavi numeriche.

Ultima modifica effettuata da blackboss il 04/09/2009 alle 2:01
PM Quote
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 2:00
Venerdì, 04/09/2009
Cercando su internet ho trovato "array_search" che farebbe al caso mio, ma ho un problema:
se lo uso in un array definito così:
Codice sorgente - presumibilmente Plain Text

  1. $colori = array(0 => 'blu', 1 => 'rosso', 2 => 'giallo', 3 => 'verde');
  2. $risultato = array_search('verde', $colori);


$risultato è uguale a 3 ed è giusto, ma se come array uso un file aperto come array, es:
Codice sorgente - presumibilmente Plain Text

  1. $colori=file("colori.txt")


e nel file c'è scritto questo:
    blu
    rosso
    giallo
    verde
Non funziona più, $risultato diventa false, come se non avesse trovato la parola, che però c'è.
Ho provato tantissime altre varianti ma nessuna funziona:(:(

PM Quote
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 0:15
Sabato, 05/09/2009
Scusa, per il tuo problema basta fare così:
Codice sorgente - presumibilmente Php

  1. foreach ($elenco_nomi as $key => $value)
  2.         if (stristr($value, $nome))
  3.                 echo "Occorrenza trovata in posizione $key con valore $value \n";


Se non ho capito male puoi risolvere usando stristr
http://us2.php.net/manual/en/function.stristr.php

Naturalmente, il pezzo di codice, devi modificarlo opportunamente (a seconda delle tue esigenze)

PM Quote
Avatar
blackboss (Normal User)
Pro


Messaggi: 63
Iscritto: 19/08/2009

Segnala al moderatore
Postato alle 13:18
Sabato, 05/09/2009
Grazie a tutti ma ho risolto con "eregi"

PM Quote
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 13:24
Sabato, 05/09/2009
Testo quotato

Postato originariamente da blackboss:

Grazie a tutti ma ho risolto con "eregi"


http://it2.php.net/eregi
Testo quotato


Warning
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.


quindi vedi un po' tu

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo