Bonjour.
1. Pour array_splice,
RTFM :
Si length est donné et positif, alors la série aura autant d'éléments. Si length est donné et négatif, les éléments seront pris dans l'ordre inverse. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset offset jusqu'à la fin du tableau.
Il faut lui passer en paramètre une taille de 1 (élément).
2. Pour ton code de départ :
Il va y avoir un problème, une fois corrigé la fonction array_splice.
En fait, la boucle foreach opère sur une copie du tableau spécifié et non sur le tableau lui-même.
Par contre, array_splice opère sur le tableau lui-même.
1. foreach génère un tableau "copie" de $tabl qui contient (0 => 'le', 1 => 'test', 2 => 'à', 3 => 'toto')
2. Pour chacun de ces 4 éléments on va tester s'il y a besoin de faire un array_splice :
Tour 1 'le' est dans la liste, donc on fait array_splice ($tabl, 0, 1)
$tabl = ('test', 'à', 'toto')
Tour 2 : 'test' n'est pas dans la liste.
Tour 3 : 'à' est dans la liste, donc on fait array_splice ($tabl, 2, 1)
$tabl = ('test', 'à') (vu qu'on suprime $tabl[2])
Sinon, vu ce que tu veux faire tu devrais jeter un coup d'oeil sur
array_diff()...
Bonjour.
1. Pour array_splice, [url=http://fr.php.net/array_splice]RTFM[/url] :
[quote]Si length est donné et positif, alors la série aura autant d'éléments. Si length est donné et négatif, les éléments seront pris dans l'ordre inverse. [b]Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset offset jusqu'à la fin du tableau.[/b][/quote]
Il faut lui passer en paramètre une taille de 1 (élément).
2. Pour ton code de départ :
Il va y avoir un problème, une fois corrigé la fonction array_splice.
En fait, la boucle foreach opère sur une copie du tableau spécifié et non sur le tableau lui-même.
Par contre, array_splice opère sur le tableau lui-même.
1. foreach génère un tableau "copie" de $tabl qui contient (0 => 'le', 1 => 'test', 2 => 'à', 3 => 'toto')
2. Pour chacun de ces 4 éléments on va tester s'il y a besoin de faire un array_splice :
Tour 1 'le' est dans la liste, donc on fait array_splice ($tabl, 0, 1)
$tabl = ('test', 'à', 'toto')
Tour 2 : 'test' n'est pas dans la liste.
Tour 3 : 'à' est dans la liste, donc on fait array_splice ($tabl, 2, 1)
$tabl = ('test', 'à') (vu qu'on suprime $tabl[2])
Sinon, vu ce que tu veux faire tu devrais jeter un coup d'oeil sur [url=http://fr.php.net/manual/fr/function.array-diff.php]array_diff()[/url]...