this.createArrayFromName = function(elName , inpTyp , src)
{
if(!src)
{
src = document ;
}
var allElements = src.getElementsByTagName(inpTyp) ;
var myReturn = new Array() ;
for(var el in allElements)
{
var myEl = allElements[el] ;
if(myEl.name && myEl.name.match('^'+elName+'.+'))
{
var myData = myEl.name.split('[');
myData[1] = myData[1].replace(']','');
myData[2] = myData[2].replace(']','');
if(!myReturn[myData[1]])
{
myReturn[myData[1]] = new Array()
}
myReturn[myData[1]][myData[2]] = myEl.value
}
}
return myReturn ;
}
En voor de mensen die het willen gaan gebruiken, op het moment werkt het alleen met 2 dimentionale arrays. Named keys heb ik niet getest maar zou haast wel moeten werken
Kan je niet met een if(is_array()) of in elk geval zoiets kijken dat je dan de functie opnieuw aanroept vanuit de functie?
Je krijgt dan zo'n constructie (php voorbeeld, maar moet voor js ook werken):
<?php
function functie($array){
foreach($array as $key => $value){
if(is_array($value)){
$return[] = functie($value);
}
else{
$return[] = $value;
}
}
}
?>
Wanneer de name nog een array is, dan roep je met die array de functie opnieuw aan. Dat gaat allemaal automatisch en dat is ook hetgeen wat we recursief noemen.