Esiste in php qualcosa tipo array_push che però ti da la possibilità di scegliere in che posizione inserire il dato e fa scorrere l'indice di una unità ogni elemento successivo?
Esiste in php qualcosa tipo array_push che però ti da la possibilità di scegliere in che posizione inserire il dato e fa scorrere l'indice di una unità ogni elemento successivo?
oppure una funzione che dato un array associativo, modifica tutti gli indici rendendoli numerici, standard.
non capisco cosa devi fare.. se devi ordinare ci sono la funzione sort, e rsort ma per fare quello che dici tu sopra non c'è una funzione specifica...Originariamente inviato da james
oppure una funzione che dato un array associativo, modifica tutti gli indici rendendoli numerici, standard.
c'è array_push ma inserisce l'elemento alla fine dell'array..vedi un po te..cmq sul sito www.php.net c'è la guida in italiano scaricabile (.chm)...
"Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant
grazie, ho la necessità semplicemente di inserire un valore non all'inizio ne alla fine di un array quindi la push non va bene, ma nel bel mezzo dell'array, esigenza strana...grazie del tuo aiuto in ogni casoOriginariamente inviato da Whitecrowsrain
non capisco cosa devi fare.. se devi ordinare ci sono la funzione sort, e rsort ma per fare quello che dici tu sopra non c'è una funzione specifica...
c'è array_push ma inserisce l'elemento alla fine dell'array..vedi un po te..cmq sul sito www.php.net c'è la guida in italiano scaricabile (.chm)...
l'algoritmo per quello che devi far tu cmq non è così complicato:Originariamente inviato da james
grazie, ho la necessità semplicemente di inserire un valore non all'inizio ne alla fine di un array quindi la push non va bene, ma nel bel mezzo dell'array, esigenza strana...grazie del tuo aiuto in ogni caso
Spero che sia chiaro.. non l'ho testato perchè mi sembra esatto e magari ha qualche piccola imperfezione ma l'idea è quella giusta...Codice PHP:
<?
..
//array da manipolare
$array=('a','b','c','d','e','f','g');
//supponiamo che tu voglia inserire alla posizione 4 dell'array la lettera a
$i=3;
// sposti i valori dell'array alla posizione successiva partendo dall'indice dove vorresti inserire il
// nuovo valore creando una sorta di "buco"
while (array[$i]<>'')
{
$array[$i+1]=$array[$i];
$i++;
}
//poi inserisci il valore nel "buco" da te precedentemente creato cioè nella posizione 4
$array[3]='a';
// N.B. io sono partito come indice iniziale con 0 ma se vuoi puoi anche partire da 1
..
?>
vedi un po' te!
"Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant
Dopo aver ululato alla luna per un paio di mesi … poi ho trovato la soluzione
bisogna usare
array_splice
ma con gli opportuni parametri
ecco un esempio
$input = array("red", "green", "blue", "yellow");
print_r($input);
echo 'dopooooooooooooooooooooooooooooooooooooooooo';
array_splice($input, 2, 0, "purple");
print_r($input);
risultato :
Array
(
[0] => red
[1] => green
[2] => blue
[3] => yellow
)
dopoooooooooooooooooooooooooooooooooooooooooArray
(
[0] => red
[1] => green
[2] => purple
[3] => blue
[4] => yellow
)
vedi la documentazione di array_splice() su php.net
fra la teoria e la pratica teoricamente non c'è differenza ma praticamente si