Newsgroup: it.comp.www.php
Titolo: eliminare valori da un array

Ciao a tutti,
ho un problema, sto facendo un pagina che salva dei valori in un array di
sessione: $_SESSION['array'][n], i valori vengono stampati a video dentro
una select di tipo multiple.
Il problema qual'č? Devo gestire un pulsante cancella, che selezionando un
valore me lo cancella dall'array, sapete come consigliarmi?
Io ho provato con array_splice ma i cancella solo il primo valore se invece
lo faccio con unset mi cancella solo l'ultimo.....
Grazie in anticipo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 cancella dall'array,
Come da manuale utilizza 
http://www.php.net/unset
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
L'uomo, conscio di sbagliare, persevera.

 lo faccio con unset mi cancella solo l'ultimo.....
allora prova con session_unregister($_SESSION['array'][n]), forse cosě
funge....
ste

 funge....
ARGH, Obrobrio !!!
[quoto dal manuale]
Caution: 
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use
session_register(), session_is_registered() and session_unregister().
[/quoto]
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y


 ha scritto nel messaggio
news:T8_zc.40639$G%.12494@tornado.fastwebnet.it...


 che roba h? se e' un array devi usare le apposite funzioni
1^ Quota decentemente.
2^ Non fare spamming. 
3^ "se e' un array devi usare le apposite funzioni" es. unset.
-- 
I am what I am, I do what I can


 lo faccio con unset mi cancella solo l'ultimo.....
con questo cancelli l'intero
$_SESSION['array'] = array();
IMHO se la sessione la fai diventare un multidimensionale
ne puoi cancellare solo una parte e l'altra ti rimane cazzaggiabile
$_SESSION['user']['nome'] = "pippo";
$_SESSION['user']['cong'] = "franco";
$_SESSION['dati']['0'] = 1111;
$_SESSION['dati']['1'] = 11;
se vuoi cancellare solo dati:
$_SESSION['dati'] = array();
in questo modo ti rimane user
per piallare l'intera sessione
session_destroy();


NIENTE da FARE:
questo e il codice che sto utilizzando:
if($cancella=="Cancella"){
        unset($_SESSION['array_nomi'][$lista]);
}
Va tutto bene se cancello l'ultimo, ma se ne ho tre e cancello uno quello in
mezzo se ne va anche l'ultimo e se invece ne ho quattro e cancello il
secondo se ne va anche l'ultimo....aiutoooooo.
PRemetto: $lista l'ho già controllato è una variabile che contiene l'indice
dell'array la ricavo da questo pezzo di codice
che è dentro ad un form di tipo POST e poi la salvo in $_POST
for($i=0;$i<=$num_array;$i++){
				$appoggio=$_SESSION['array_nomi'][$i];
				if($appoggio=="") $appoggio=0;
				$query_denominazione=@pg_query("SELECT \"DENOMINAZIONE\" FROM tbl_tersite
WHERE \"N-REA\"='$appoggio'")
				 	or die("ERRORE");
				while($row=@pg_fetch_array($query_denominazione)){
   echo "<option value=\"$i\">{$row['DENOMINAZIONE']}</option>";


 [/quoto]
Ok questa parte del manuale la conosco, ma poichè ha un comportamento
anomalo con unset, allora ho suggerito una soluzione anomala che tra l'altro
a me in casi simili ha funzionato, ma che per un purista del codice come te
può essere solo che un "obrobrio".
ste

 }
Insisto magari stavolta, nonostante le sentenze del manuale, almeno ci
provi.
Prova, come gia ti ho suggerito, con session_unregister, è probabile che non
funga lo stesso e faccia venire il voltastomaco a qualcuno, ma tentare non
costa nulla no?
ste

 codice come te pur essere solo che un "obrobrio".
Non so bene, ma ho provato il seguente codice:
<?php 
session_start ();
$_SESSION['array'][] = 'pippo';
$_SESSION['array'][] = 'pluto';
$_SESSION['array'][] = 'topolino';
$_SESSION['array'][] = 'minni';
print ('<pre>');
print_r ($_SESSION['array']);
print ('</pre>');
unset ($_SESSION['array'][2]);
unset ($_SESSION['array'][0]);
print ('<pre>');
print_r ($_SESSION['array']);
print ('</pre>');
?>
e questo
<?php 
session_start ();
$_SESSION['array']['a'] = 'pippo';
$_SESSION['array']['b'] = 'pluto';
$_SESSION['array']['c'] = 'topolino';
$_SESSION['array']['d'] = 'minni';
print ('<pre>');
print_r ($_SESSION['array']);
print ('</pre>');
unset ($_SESSION['array']['c']);
unset ($_SESSION['array']['a']);
print ('<pre>');
print_r ($_SESSION['array']);
print ('</pre>');
?>
Entrambi funzionano perfettamente.
-- 
I am what I am, I do what I can
