Page 1 sur 1

Tableau et insertion

Posté : 15 juin 2008, 15:02
par katagoto
Bonjour à toutes et tous,
J'ai cherché dans les fonctions array et je n'ai trouvé aucune fonction me premettant de faire ça :
// Tableau initiale
$tab[0]='ini1';
$tab[1]='ini2';
$tab[2]='ini3';
$tab[3]='ini4';
$tab[4]='ini5';
$tab[5]='ini6';

// Après l'usage d'une fonction qui se base sur le numéreau de la clef :
$tab[0]='ini1';
$tab[1]='ini2';
$tab[2]='ini3';
$tab[3]='aj1';// Ligne ajoutée
$tab[4]='aj2';// """""""""""""
$tab[5]='aj3';//""""""""""""""
$tab[6]='ini4';
$tab[7]='ini5';
$tab[8]='ini6';
aj 1, 2 et 3 viendrait d'un autre tableau

Si quelqu'un à une idée :roll:

Par avance merci

PS : Deuxième problème

J'ai un foreach qui parcours un tableau, chaque fois qu'il rencontre 'c3' comme valeur j'aimerais qu'il modifie la tableau pour remplacer c3 par 'remplace'

J'ai tenté ça en vaint :
<?php
$tableau=array();
$tableau[0]='c1';
$tableau[1]='c2';
$tableau[2]='c3';
$tableau[3]='c4';
$tableau[4]='c5';
print_r($tableau);
foreach($tableau as $clef => $valeur){
 $valeur = str_replace('c3', 'remplace', $valeur);
 }
print_r($tableau);

foreach($tableau as $clef => $valeur){
 $tableau[$clef] = str_replace('c3', 'remplace', $valeur);
 }
 print_r($tableau);
?>
Des idées ? :roll:

Posté : 15 juin 2008, 20:19
par nicolas
foreach travaille avec une copie du tableau donc le comportement est normal.
Pour ton premier problème, sans plus d'explications, je ne vois pas trop quoi te dire!

Re: Tableau et insertion

Posté : 15 juin 2008, 20:27
par katagoto
Je viens de trouver les réponses, tout seul, comme un grand :P
// Tableau initiale
$tab[0]='ini1';
$tab[1]='ini2';
$tab[2]='ini3';
$tab[3]='ini4';
$tab[4]='ini5';
$tab[5]='ini6';

// Après l'usage d'une fonction qui se base sur le numéreau de la clef :
$tab[0]='ini1';
$tab[1]='ini2';
$tab[2]='ini3';
$tab[3]='aj1';// Ligne ajoutée
$tab[4]='aj2';// """""""""""""
$tab[5]='aj3';//""""""""""""""
$tab[6]='ini4';
$tab[7]='ini5';
$tab[8]='ini6';
En fait j'écrit dans les fichiers avec une fonction qui prend comme parramètre les array, j'utiliserai la récursivité pour ça

Deuxième problème

Le première boucle ne peut pas marcher, c'est vrai, la seconde non plus, je veut remplacer quelque chose qui n'est pas dans le tableau ^^'
<?php
$tableau=array();
$tableau[0]='c1';
$tableau[1]='c2';
$tableau[2]='c3';
$tableau[3]='c4';
$tableau[4]='c5';
print_r($tableau);
foreach($tableau as $clef => $valeur){
 $valeur = str_replace('c3', 'remplace', $valeur);
 }
print_r($tableau);

foreach($tableau as $clef => $valeur){
 $tableau[$clef] = str_replace('c3', 'remplace', $valeur); // faut remplacer le c par le v xD
 }
 print_r($tableau);
?>
Merci quand même :)

Posté : 17 juin 2008, 17:14
par katagoto
J'ai résolue mon problème, mais il me manque une fonction :
$tab=array_merge(array_function(0, 3, $tab), $tab2, array_function(3, 3, $tab));
array_function(0, 3, $tab) me permettrais de récupérer à partir de l'index 0 de $tab les 3 entré dont l'entré 0

Quelqu'un connais le nom de cette fonction ???