从数组中删除

这个问题在这里已经有了答案:

  • PHP:从数组中删除一个元素34个答案

  • 您可以将$ _session传递给ArrayIterator并使用ArrayIterator :: offsetUnset()。

    例如:-

    session_start();
    
    $_SESSION['test1'] = 'Test1';
    $_SESSION['test2'] = 'Test2';
    $_SESSION['test3'] = 'Test3';
    
    var_dump($_SESSION);
    $iterator = new ArrayIterator($_SESSION);
    $iterator->offsetUnset('test2');
    $_SESSION =  $iterator->getArrayCopy();
    
    var_dump($_SESSION);
    

    输出: -

    array (size=3)
      'test1' => string 'Test1' (length=5)
      'test2' => string 'Test2' (length=5)
      'test3' => string 'Test3' (length=5)
    
    array (size=2)
      'test1' => string 'Test1' (length=5)
      'test3' => string 'Test3' (length=5)
    

    这也为您节省了在数组中循环查找要删除的元素的开销。


    你的删除方式似乎没有问题。 但我认为问题出在数组的结构上。 例如,字符串值不被引用,没有逗号分隔数组项,并且数组键被写入[]中。

    尝试改变你的数组,如下所示,删除应该可以正常工作:

    $_SESSION['Items'] = Array ( 
        0 => Array ( 
            'id' => 18, 
            'name' => 'book',
            'description' => '',
            'quantity' => 0,
            'price' => 50,
            'status' => 'Brand New'
        ),
        1 => Array ( 
            'id' => 19,
            'name' => 'testing',
            'description' => 'for testing',
            'quantity' => 2,
            'price' => 182,
            'status' => 'Brand New',
        ),
        2 => Array ( 
            'id' => 1,
            'name' => 'Fruity Loops',
            'description' => 'dj mixer',
            'quantity' => 1,
            'price'  => 200,
            'status' => 'Brand New'
        ) 
    );
    

    希望能帮助到你。

    链接地址: http://www.djcxy.com/p/30111.html

    上一篇: Deleting from an array

    下一篇: php how to remove from an array