- Home
- Categorie
- Coding e Sistemistica
- PHP
- Array: eliminare gli elementi che soddisfano una condizione
-
Array: eliminare gli elementi che soddisfano una condizione
Salve a tutti,
ho un array, che chiameremo $r_giorni:[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 )
[/PHP]Come faccio ad eliminare gli elementi che soddsfano la condizione: '0000-00-00'?
Avevo scritto:
[PHP]
//Rimuovo gli elmenti vuoti, cioè 0000-00-00
for($i=0; $i < count($r_giorni); $i++){
if($r_giorni* == '0000-00-00') {
unset($r_giorni*);
}
}
[/PHP]ma non va!
Grazie.
-
Ciao,
puoi fare cosi:
[php]
foreach($r_giorni AS $i => $v)
{
if($v == '0000-00-00')
{
unset($r_giorni*);
}
}
[/php]
-
Mi pare che la soluzione di felino possa funzionare, ma ci sono un paio di errori
[php]
//Rimuovo gli elmenti vuoti, cioè 0000-00-00
for($i=0; $i < count($r_giorni); $i++){
if($r_giorni* == '0000-00-00') {
unset($r_giorni*);
}
}
[/php]dovrebbe essere
[php]
//Rimuovo gli elmenti vuoti, cioè 0000-00-00
for($i=0; $i < count($r_giorni); $i++){
if($r_giorni* == '0000-00-00') {
unset($r_giorni*);
}
}
[/php]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
[php]
$keys = array_keys($r_giorni, '0000-00-00', true);
foreach($keys as $key){
unset($r_giorni[$key]);
}
[/php]
-
Suggerirei di ricorrere al ciclo for() solo per gli array non associativi.
-
Grazie a tutti, alla fine ho usato il foreach!
Ecco perchè non funzionava, avevo dimenticato il $ all'interno della condizione IF.
Grazie.