Tableau PHP
bloodchecker
Messages postés
339
Date d'inscription
Statut
Membre
Dernière intervention
-
bloodchecker Messages postés 339 Date d'inscription Statut Membre Dernière intervention -
bloodchecker Messages postés 339 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
soit le cas suivante :
$tableau=array(pomme, poire, banane);
Ce qui au final me donne :
$tableau[0]=pomme;
$tableau[1]=poire;
$tableau[2]=banane;
J'aimerai savoir si il ets possible d'ajouter une nouvelle valeur entre deux autres
afin d'avoir par exemple :
$tableau[0]=pomme;
$tableau[1]=raisin;
$tableau[2]=poire;
$tableau[3]=banane;
Le but final est de l'utilisé dans d'immense tableau donc me dites pas de retaper ma déclaration initiale :/
en gros y a t'il moyen de décaler tous les indice pour en insérer un nouveau.
Merci !
soit le cas suivante :
$tableau=array(pomme, poire, banane);
Ce qui au final me donne :
$tableau[0]=pomme;
$tableau[1]=poire;
$tableau[2]=banane;
J'aimerai savoir si il ets possible d'ajouter une nouvelle valeur entre deux autres
afin d'avoir par exemple :
$tableau[0]=pomme;
$tableau[1]=raisin;
$tableau[2]=poire;
$tableau[3]=banane;
Le but final est de l'utilisé dans d'immense tableau donc me dites pas de retaper ma déclaration initiale :/
en gros y a t'il moyen de décaler tous les indice pour en insérer un nouveau.
Merci !
A voir également:
- Tableau PHP
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
3 réponses
bonjour,
je crois bien que le seul moyen de faire ca est un algorithme copiant chaque valeur supérieur a celle que tu veux sur le rang au dessus et d insérer ensuite.
(c est simple mais dur a expliquer^^)
au début:
[0]=>item0
[1]=>item1
[2]=>item2
[3]=>item3
en cours:
[0]=>item0
[1]=>item1
[2]=>item2
[3]=>item2
[4]=>item3
après:
[0]=>item0
[1]=>item1
[2]=>item4
[3]=>item2
[4]=>item3
il faut partir de la fin pour le déplacement afin de ne pas écraser de valeur.
mais cela a un gros défaut, sur des gros tableau ca prend un maximum de ressources...
copier 20 000 valeurs a chaque fois, les machines aiment pas...
je crois bien que le seul moyen de faire ca est un algorithme copiant chaque valeur supérieur a celle que tu veux sur le rang au dessus et d insérer ensuite.
(c est simple mais dur a expliquer^^)
au début:
[0]=>item0
[1]=>item1
[2]=>item2
[3]=>item3
en cours:
[0]=>item0
[1]=>item1
[2]=>item2
[3]=>item2
[4]=>item3
après:
[0]=>item0
[1]=>item1
[2]=>item4
[3]=>item2
[4]=>item3
il faut partir de la fin pour le déplacement afin de ne pas écraser de valeur.
mais cela a un gros défaut, sur des gros tableau ca prend un maximum de ressources...
copier 20 000 valeurs a chaque fois, les machines aiment pas...
bon pas trop dure: voila ce que je te propose:
function decaledonnee($tab,$donneesupp,$num){
$j=0;
for($i=0;$i<count($tab);$i++){
if ($i<>$num){$tabs[$j++]=$tab[$i];}else{$tabs[$j++]=$donneesupp;}
}
return $tabs;
}
Alors petite explication:
$tab => ton tableau de base
$donneesupp => La donné à rajouté
$num => L'index (ou la ligne - 1) du tableau
Ta plus qu'a coller ca ou tu veux ds ton prog, et écrire decaledonnee($tableau,"patate",2);
et c'est réglé...
function decaledonnee($tab,$donneesupp,$num){
$j=0;
for($i=0;$i<count($tab);$i++){
if ($i<>$num){$tabs[$j++]=$tab[$i];}else{$tabs[$j++]=$donneesupp;}
}
return $tabs;
}
Alors petite explication:
$tab => ton tableau de base
$donneesupp => La donné à rajouté
$num => L'index (ou la ligne - 1) du tableau
Ta plus qu'a coller ca ou tu veux ds ton prog, et écrire decaledonnee($tableau,"patate",2);
et c'est réglé...