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] )

Thanks for reply, but I want to:


Imagine I have this:

$KEYS = array('a', 'b', 'c');

And I want to:


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 (
To unsubscribe, visit:

Reply via email to