note 24640 added to ref.array
| From: | dan at kuykendall dot org | Date: | Fri, 23 Aug 2002 19:56:43 +0000 |
| Subject: | note 24640 added to ref.array | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-35420@lists.php.net to get a copy of this message | ||
Here is my var2xml function.
This one will convert any var type except objects, and for arrays it will take indexed subarrays and
assume they should be duplicates of the parent tag name.
function var2xml ($name, $value, $indent = 1)
{
$indentstring = $this->indentstring;
for ($i = 0; $i < $indent; $i++)
{
$indentstring .= $this->indentstring;
}
if (!is_array($value))
{
$xml =
$indentstring.'<'.$name.'>'.$value.'</'.$name.'>'."\n";
}
else
{
if($indent === 1)
{
$isindex = False;
}
else
{
$isindex = True;
while (list ($idxkey, $idxval) = each ($value))
{
if ($idxkey !== (int)$idxkey)
{
$isindex = False;
}
}
}
reset($value);
while (list ($key, $val) = each ($value))
{
if($indent === 1)
{
$keyname = $name;
$nextkey = $key;
}
elseif($isindex)
{
$keyname = $name;
$nextkey = $name;
}
else
{
$keyname = $key;
$nextkey = $key;
}
if (is_array($val))
{
$xml .= $indentstring.'<'.$keyname.'>'."\n";
$xml .= $this->var2xml ($nextkey, $val, $indent+1);
$xml .= $indentstring.'</'.$keyname.'>'."\n";
}
else
{
$xml .= $this->var2xml ($nextkey, $val, $indent);
}
}
}
return $xml;
}
--
http://www.php.net/manual/en/ref.array.php
http://master.php.net/manage/user-notes.php?action=edit+24640
http://master.php.net/manage/user-notes.php?action=delete+24640
http://master.php.net/manage/user-notes.php?action=reject+24640