1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| function tabWriteAfter($tab, $srch, $toAdd)
{
// fonction qui admet trois paramètres à son appel: le tableau sur lequel on travaille
// la VALEUR à scanner, $srch, dans le tableau $tab pour inclure à la suite de la première occurrence trouvée, tes données $toAdd (tableau)
// on va rechercher si la valeur passée en argument est présente dans le tableau
$i=0;
$notfound = true;
$repere; // variable pour sauver l'indice où se trouver la valeur...
while($i < sizeof($tab) && $notfound)
{
if($tab[$i]==$srch)
{ $notfound = false; // on a trouvé, on flag pour arrêter le scan
$repere = $i;
}
else
$i++;
}
// scan terminé : deux solutions - valeur présente (et trouvée), ou pas
if($notfound)
{
echo "Dsl, aucune occurrence de ".$srch." dans le tableau";
return null; // code erreur, qu'on pourra tester après appel
}
else
{
// youpi, trouvé $srch, en position $repere dans $tab
// on va donc inclure $toAdd à partir de $tab[$repere+1] ...
$newTab = Array();
for($i=0; $i<=$repere; $i++)
$newTab[$i] = $tab[$i];
// les nouvelles données qu'on insère
for($i=$repere+1, $j=0; $j < sizeof($toAdd) ; $i++, $j++)
{ $newTab[$i] = $toAdd[$j]; }
// on concatène le reste
for($i=$repere+1; $tab[$i] ; $i++)
{ $newTab[$i] = $tab[$i]; }
return $newTab;
}
} |
Partager