Robert Cummings napsal(a):
Martin Zvarík wrote:
$ARR = array(
'a' => array('b' => 'blah')
);
function set($key)
{
global $ARR;
foreach ($key as $i => $k) {
if ($i == 0) {
$sourcevar =& $ARR[$k];
} else {
$sourcevar =& $sourcevar[$k];
}
}
// unset($sourcevar); // will cancel the reference - we want to
unset the ['b'], but how?
$sourcevar = null; // will set it NULL, but won't unset...
foreach ($ARR ... // I could run a cleanup, that would go through all
of the array and unset what is NULL, but I would need to use
REFERENCES again!! array_walk_recursive() is also worthless... any
ideas?
}
set( array('a', 'b') );
unset( $ARR[$k] )
Cheers,
Rob.
Thanks for reply, but I want to:
unset($ARR['a']['b'])
Imagine I have this:
$KEYS = array('a', 'b', 'c');
And I want to:
unset($ARR['a']['b']['c'])
It's probably impossible, unless I do something dirty like this:
list($rootA, $rootB, $rootC) = $KEYS;
if (isset($rootC)) unset($x[$rootA][$rootB][$rootC]);
elseif (isset($rootB)) unset($x[$rootA][$rootB]);
elseif (isset($rootA)) unset($x[$rootA]);
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php