Visualizzazione risultati 1 fino 9 di 9

Discussione: Cercare una stringa in un array

  1. #1
    Guest

    Predefinito Cercare una stringa in un array

    Buona sera, passo subito al dunque.

    Io ho un array:

    Codice PHP:
    $urls=array ("url1","url2","url3")
    e una stringa:

    Codice PHP:
    $url="url2";
    Ora io vorrei trovare la mia stringa nell'array e prendere il valore successiovo in questo caso il valore che otterrei sarebbe url3

    Come posso fare?

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    $urls = array("url1", "url2", "url3");
    $key = array_search("url2", $urls) + 1;

    echo
    $urls[$key];
    Ultima modifica di mycarlo : 23-01-2010 alle ore 21.46.58

  3. #3
    Guest

    Predefinito

    Niente da fare mi restituisce sempre l'url2

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Lo spezzone sopra, se eseguito, restituisce "url3". Se poi hai sbagliato a copiarlo o a usarlo, devi vedere tu.

  5. #5
    Guest

    Predefinito

    Infatti ho trovato l'errore...non capisco perchè php non me lo segnalava...

  6. #6
    Guest

    Predefinito

    PHP non segnala gli errori "logici", solamente quelli di sintassi e quelli fatali (quando non trova una funzione/classe, eccetera). In questo senso molti linguaggi gli sono superiori. Java, ad esempio, ha un sistema di gestione degli errori più dettagliato, anche se più difficile da interpretare. Quale era l'errore che facevi?

  7. #7
    ninz non è connesso Neofita
    Data registrazione
    04-03-2007
    Messaggi
    2

    Predefinito

    Ciao

    nel caso l'array sia più complesso

    $a = array();
    $a[0][0] = "marvel";
    $a[0][1] = "blacklist";
    $a[0][2] = "revolution";
    $a[1][0] = "primaserie";
    $a[1][1] = "primaserie";
    $a[1][2] = "secondaserie";
    $a[2][0] = "ventuno";
    $a[2][1] = "ventuno";
    $a[2][2] = "venti";

    e nel caso volessi cercare "marvel" ed ottenere $a[1][0]?

    credo che la risposta sia nel foreach annidato, ma non riesco a venirne a capo...

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da ninz Visualizza messaggio
    Ciao

    nel caso l'array sia più complesso

    $a = array();
    $a[0][0] = "marvel";
    $a[0][1] = "blacklist";
    $a[0][2] = "revolution";
    $a[1][0] = "primaserie";
    $a[1][1] = "primaserie";
    $a[1][2] = "secondaserie";
    $a[2][0] = "ventuno";
    $a[2][1] = "ventuno";
    $a[2][2] = "venti";

    e nel caso volessi cercare "marvel" ed ottenere $a[1][0]?

    credo che la risposta sia nel foreach annidato, ma non riesco a venirne a capo...
    Io ci ho sbattuto la testa per diverso tempo, e l'unica soluzione che ho trovato è quella del foreach annidato.

  9. #9
    ninz non è connesso Neofita
    Data registrazione
    04-03-2007
    Messaggi
    2

    Predefinito

    Ottengo il risultato desiderato così:

    for ($i=0; $i<=count($a[0]); $i++){
    $key = array_search('marvel', $a[$i + 1]);
    if ($key != ""){
    echo $a[1][$key].$a[2][$key];
    }
    }

    il problema è che ci mette troppo tempo, considerando poi che dovrebbe farlo almeno 8000 volte in una sola pagina

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •