Tableau PHP

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 !

3 réponses

  1. 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é...
    0
    1. 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...
      0