首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php未设置会话购物车数组

php未设置会话购物车数组
EN

Stack Overflow用户
提问于 2014-03-02 20:08:18
回答 3查看 1.3K关注 0票数 0
代码语言:javascript
运行
复制
    Array ( 
   [0] => Array ( 
      [0] => Array ( 
         [subject] => Computer [price] => 33.00
         [quantity] => 1 
         [total] => 33
         [level] => Array (
            [CSA] => 1
            [CSB] => 2
         )
      )
   )
   [1] => Array (
      [0] => Array (
         [subject] => English
         [price] => 33.00
         [quantity] => 25
         [total] => 825
         [level] => Array (
            [Eintro] => 1
            [EA] =>
            [EB] => 1
         )
      )
   )

我有一个上面提到的会话购物车数组。如何删除与“计算机”相关的项目,即如果主题计算机和与主题计算机相关的价格、数量、总数和级别。

我知道我必须使用未设置的会话。但是,如何仅为计算机行取消设置会话数组,使其不会影响购物车中的其他项目数组?

代码语言:javascript
运行
复制
var_export($session_cart);

array ( 
   0 => array ( 
      0 => array ( 
         'subject' => 'Computer', 
         'price' => '33.00',
         'quantity' => 1,
         'total' => 33, 
         'level' => array ( 
            'CSA' => '1', 
            'CSB' => '2',
         ),
      ),
   ), 
   1 => array ( 
      0 => array ( 
         'subject' => 'English',
         'price' => '33.00',
         'quantity' => 25,
         'total' => 825,
         'level' => array (
            'EA' => '1',
            'EB' => '1',
         ), 
      ), 
   ),
EN

Stack Overflow用户

发布于 2014-03-02 22:29:31

下面是一个函数,它可以在多数组中进行搜索,并在找到值时执行回调函数:

代码语言:javascript
运行
复制
    function extend_array_search($needle,&$haystack,$callback = '') {
    $array_res = array();
    foreach ($haystack as $key => $value) {
        $res = null;
        if(is_array($value)) {
            $res = extend_array_search($needle,$value);
        } else {
            if($value == $needle) {
                $res = $key;
            } 
        }
        if($res != null) $array_res[$key] = $res;

    }
    if(!empty($callback)) {
        $array_res = $callback($array_res,&$haystack);
    }
    if($array_res != null) {
        return $array_res;
    }
}

function unset_array_key($key_to_unset, $array_to_modify) {
    if(is_array($key_to_unset)) {
        foreach ($key_to_unset as $key => $value) {
            unset($array_to_modify[$key]);
        }
    } else {
        unset($array_to_modify[$key_to_unset]);
    }
}



extend_array_search('Computer',$session_cart) // return the keys containing computer OR
 extend_array_search('Computer', $session_cart,'unset_array_key'); // unset the value in $session_cart
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22127329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档