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

    Posizione in_array trovato

    Salve a tutti,
    vorrei capire se posso fare una cosa semplice su un in_array,
    ovvero sapere in quale posizione numerica ha trovato quello che cercavo.

    $now_minute = "12:00";
    $orari_pubblicazione = array('18:50', '12:00', '15:00', '18:45', '21:00');
    if (in_array($now_minute, $orari_pubblicazione)) {
    echo = "L'hai trovato nella posizione 2";
    }

    Si puo fare qualcosa di simile??
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    Mi rispondo da solo e per chi troverà questo thread:


    $fascia_oraria = array_search($now_minute, $orari_pubblicazione);

    e cosi mi da l'indice in cui è posizionato l'array.

    Perchè uso Maxthon? | Mi piace questa chat

  3. #3
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    tieni conto che il conteggio delle posizioni nell'array parte da zero...

  4. #4
    Originariamente inviato da homerbit
    tieni conto che il conteggio delle posizioni nell'array parte da zero...
    E infatti mi sta dando "problemi" di gestione questa cosa.

    Codice PHP:
    $now_minute "09:00";
    $orari_pubblicazione = array('09:00''12:00''15:00''18:00''21:00');
    $fascia_oraria array_search($now_minute$orari_pubblicazione);

    if(
    $fascia_oraria >= 0) {
    echo 
    "fai qualcosa";

    Il fatto che parta da ZERO, anche in una condizione di orario sfavorevole ai 5 che ho segnato nell'array, lo script giustamente parte lo stesso.
    Perchè se $now_minute = "02:12" dall'array mi uscirà fuori un campo vuoto, che cmq lui giudicherà come zero.

    Ho provato anche a fare if(!empty) ma non c'è stato verso.

    Sarà sicuramente una stupidaggina, vero??
    Perchè uso Maxthon? | Mi piace questa chat

  5. #5
    provato con il count dell'array ?

    count($array)

  6. #6
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, ma se per evitare questo problema fai un comunissimo foreach?
    Codice PHP:
    $now_minute "09:00";
    $orari_pubblicazione = array('09:00''12:00''15:00''18:00''21:00'); 
    $trovato=$posizione=$i=0;

    foreach(
    $orari_pubblicazione as $val){
    if(
    $now_minute==$val){
    $trovato=1;
    $posizione=$i;
    break;
    }
    $i++
    }
    if(
    $trovato) echo "La stringa è alla posizione $posizione";
    else echo 
    "Stringa non presente" 
    Certo non è una sola riga di codice come prima...però credo sia più sicuro.

  7. #7
    Non è vero che restituisce zero in caso di ricerca negativa. Come da manuale:

    Returns the key for needle if it is found in the array, FALSE otherwise.

    Il fatto è che lo zero viene considerato anche come false.
    Dovresti fare così:

    Codice PHP:
    $now_minute "09:00";
    $orari_pubblicazione = array('09:00''12:00''15:00''18:00''21:00');
    $fascia_oraria array_search($now_minute$orari_pubblicazione);

    if(
    $fascia_oraria === || $fascia_oraria 0) {
        echo 
    "fai qualcosa";

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    I 3 uguali non li avevo mai visti in vita mia, e cosi funziona bene.

    Ma cosa significano nell'esattezza???
    Perchè uso Maxthon? | Mi piace questa chat

  9. #9

  10. #10
    Non si finisce mai di imparare, grazie
    Perchè uso Maxthon? | Mi piace questa chat

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.