+ Rispondi alla Discussione
Risultati da 1 a 5 di 5

Array: eliminare gli elementi che soddisfano una condizione

Ultimo Messaggio di felino il:
  1. #1
    Utente Premium L'avatar di felino
    Data Registrazione
    Nov 2009
    Località
    Acicatena - Catania
    Messaggi
    1,831
    Aggiungi felino su Facebook Aggiungi felino su Linkedin

    Array: eliminare gli elementi che soddisfano una condizione

    Salve a tutti,
    ho un array, che chiameremo $r_giorni:

    Codice PHP:
    Array (
    [
    0] => 2014-06-01     [giugno_1] => 2014-06-01     [1] => 2014-06-08     [giugno_2] => 2014-06-08     [2] => 2014-06-15
    [giugno_3] => 2014-06-15     [3] => 2014-06-22     [giugno_4] => 2014-06-22     [4] => 2014-06-29     [giugno_5] => 2014-06-29     
    [5] => 2014-07-06     [luglio_1] => 2014-07-06     [6] => 2014-07-13     [luglio_2] => 2014-07-13     [7] => 2014-07-20     
    [luglio_3] => 2014-07-20     [8] => 2014-07-27     [luglio_4] => 2014-07-27     [9] => 0000-00-00     [luglio_5] => 0000-00-00     
    [10] => 2014-08-03     [agosto_1] => 2014-08-03     [11] => 2014-08-03     [agosto_2] => 2014-08-03     [12] => 2014-08-17    
     
    [agosto_3] => 2014-08-17     [13] => 2014-08-24     [agosto_4] => 2014-08-24     [14] => 2014-08-31     [agosto_5] => 2014-08-31    
     
    [15] => 2014-09-07     [settembre_1] => 2014-09-07     [16] => 2014-09-14     [settembre_2] => 2014-09-14     [17] => 2014-09-21     [settembre_3] => 2014-09-21     [18] => 2014-09-28     [settembre_4] => 2014-09-28     [19] => 0000-00-00     [settembre_5] => 0000-00-00 
    Come faccio ad eliminare gli elementi che soddsfano la condizione: '0000-00-00'?

    Avevo scritto:
    Codice PHP:
                 //Rimuovo gli elmenti vuoti, cioè 0000-00-00
                 
    for($i=0$i count($r_giorni); $i++){
                    if(
    $r_giorni[i] == '0000-00-00') {
                        unset(
    $r_giorni[i]);
                    }
                 } 
    ma non va!

    Grazie.

  2. #2
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Ciao,
    puoi fare cosi:
    Codice PHP:
    foreach($r_giorni AS $i => $v)
    {
     if(
    $v == '0000-00-00')
     {
      unset(
    $r_giorni[$i]);
     }


  3. #3
    Utente Premium
    Data Registrazione
    Sep 2007
    Località
    Borgo Stazione
    Messaggi
    124
    Mi pare che la soluzione di felino possa funzionare, ma ci sono un paio di errori
    Codice PHP:
     //Rimuovo gli elmenti vuoti, cioè 0000-00-00
                 
    for($i=0$i count($r_giorni); $i++){
                    if(
    $r_giorni[i] == '0000-00-00') {
                        unset(
    $r_giorni[i]);
                    }
                 } 
    dovrebbe essere
    Codice PHP:
     //Rimuovo gli elmenti vuoti, cioè 0000-00-00
                 
    for($i=0$i count($r_giorni); $i++){
                    if(
    $r_giorni[$i] == '0000-00-00') {
                        unset(
    $r_giorni[$i]);
                    }
                 } 
    Però io mi trovo più a mio agio con il foreach come indicato da Thedarkita.

    C'è una terza soluzione: con la funziona array_keys si possono trovare gli indici di un array in cui i valori soddisfano una ricerca
    Codice PHP:
    $keys array_keys($r_giorni'0000-00-00'true);
    foreach(
    $keys as $key){
        unset(
    $r_giorni[$key]);


  4. #4
    Utente Premium
    Data Registrazione
    Mar 2009
    Messaggi
    317
    Suggerirei di ricorrere al ciclo for() solo per gli array non associativi.

  5. #5
    Utente Premium L'avatar di felino
    Data Registrazione
    Nov 2009
    Località
    Acicatena - Catania
    Messaggi
    1,831
    Aggiungi felino su Facebook Aggiungi felino su Linkedin
    Grazie a tutti, alla fine ho usato il foreach!

    Ecco perchè non funzionava, avevo dimenticato il $ all'interno della condizione IF.

    Grazie.

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.