Olivier Miakinen a écrit :
> Le 12/07/2008 12:55, Etienne SOBOLE a écrit :
>>
>> le problème est que si en javascript j'ai un truc genre
>> var tData = [];
>> tData[5] = 10;
>>
>> la serialisation json va me donner un truc genre
>>
>> [null,null,null,null,null,10]
Alors en JS :
function compacter(tableau) {
var n = 0;
while(n<tableau.length && tableau[n]==null) n++;
return '@N'+n+'_'+tableau[n];
}
alert(compacter(tData));
Bon ... ça ne résoudra pas :
tData[5] = 'ab';
tData[15] = 'zx';
ni :
tData.length = 20;
tData[6] = 'fg';
S'il y en a que ça intéresse (toi ou quelqu'un d'autre) je peux
expliquer pourquoi ça marche.
Ben moi, par exemple.
Et non seulement "pourquoi" mais "comment"
J'arrive bien à bidouiller un truc laborieux en JS(*) sans reg expression, mais ... en PHP avec reg expression ... je nage.
d'abord :
que devient le $matches de repnull($matches)
dans dorepnull($subject) ?
Ensuite :
Mais où donc es-tu aller dénicher ce 'preg_replace_callback' ?
(doit quand même falloir fouiller pour trouver cette fonction !)
Je ne vois même pas la différence entre : 'preg_split' et 'explode' :-(
> $a = '[null,null,null,null,null]';
> $b = '[a,null,b,null,null,c,null,d]';
> $c = '[nullard,annulle,null,tronull,"null",null,nul]';
Et si tu as un bon moment tu pourras expliquer :
/(?<=[[,])(null,)*null[],]/
en particulier : [] (pourquoi ce n'est pas \[\] ?)
dans : *null[],]/ (comment l'expression repère les bons crochets ?)
mais aussi : (?<=[[,])
(*) à voir ici si on veut :
<
http://cjoint.com/?hnbIeQxTmD>
J'étions parti du truc du genre :
abcx2x2x2x2x2x2pqx3x2zzbcx2x2x2x2xyz
et non pas d'un array
--
sm