分享

php对多维数组的处理(删除和更新)

 wisejenny 2008-11-18
这两天做一个缓存的内容处理的东东,缓存的内容是一个多维数组,而对缓存内容不能每次读写,这样的成本很高,我们是通过数组的key来对数组进行删除和更新。

对多维数组的处理,php来处理的话用递归是最普遍的方法。但是对于比较大的数组来说效率就比较低。

最后我们是应用引用和动态变量来对多维数组进行处理的。下面是实例
<?php
$array = array(
    'admin' => array('a' => 'aaaaa', 'b' => 'bbbbb', 'c' => array('d' => 'ddddd', 'e' => 'eeeee'))
);
$keys = array('admin', 'c', 'e');
function array_remove_key($array, $keys)
{
    $num = count($keys);
    $num_last = $num - 1;
    $this_array_0 = &$array;
    $last_key = $keys[$num_last];
    for ($i = 0; $i < $num_last; $i++)
    {
       $this_key = $keys[$i];
       $this_var_name = 'this_array_' . $i;
       $next_var_name = 'this_array_' . ($i + 1);
       if (!array_key_exists($this_key, $$this_var_name)) {
          break;
       }
       $$next_var_name = &${$this_var_name}[$this_key];
    }
    unset(${$next_var_name}[$last_key]);
    return $array;
}
?>

在这里记录一下,以便以后记得。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多