【问题标题】:Can we do like this using PHP SESSION array?我们可以使用 PHP SESSION 数组这样做吗?
【发布时间】:2010-12-29 09:27:59
【问题描述】:

嗨,我们可以使用 php 会话创建二维数组吗?如果可能,如何随机取消设置值。

【问题讨论】:

  • 可以,它的行为与普通数组一样。你的问题到底是什么?
  • 请澄清您的问题!
  • 你是什么意思,随机取消设置值?从阵列?只有最深的层次,还是可以取消整个分支?

标签: php session session-variables


【解决方案1】:

不,PHP 不实现多维数组。但是,数组的元素可以是数组本身。并且任何 PHP 数据项都可以存储在会话中(但是资源在它们被初始化的线程之外变得毫无意义,并且对象需要从会话中引用类定义)。

例如

<?php

$two_d=array(
    array(1,2,3),
    array(4,5,6),
    array(7,8,9),
    array('#','.','=')
    );
$two_d[3][2]='*'; // was '='

如何随机取消设置值

这将是二维数组中的矛盾修饰符。但是在数组数组的上下文中是完全有效的:

unset($two_d[1]); // removed the whole second row from the above
unset($two_d[0][1]); // $two_d[0] is now array(1,3)

【讨论】:

    【解决方案2】:
    $_SESSION['whateverValue'] = Array(
      1 => Array (
        'a','b','c','d'
      ),
      2 => Array (
        'q','w','e','r','t'
      )
    );
    

    瞧,一个二维数组,在会话中。

    脚本执行时会话变量没有任何特殊性。它们唯一的“魔力”是它们在 session_start() 处反序列化并在 session_close() 处序列化

    【讨论】:

    • 使用unset($_SESSION['whateverValue']) 或session_destory()
    • @Petah:是的,我知道如何取消设置会话变量,我不确定“随机取消设置”是什么意思。
    • 那不是二维数组。它是一个数组数组。
    • @symcbean:确实是一个数组数组;它的工作原理类似于多维数组:$_SESSION['whateverValue'][1][0] == 'a'。你建议在 PHP 中实现哪些其他实现?
    • @Piskvor:使用 PHP 创建一个真正的 N-D 数组并非不可能 - 但您需要将所有访问权限包装在 PHP 代码中。差异很重要(将数组的数组与其他实体相乘是没有意义的,但矩阵操作需要 N 维数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2010-10-31
    • 1970-01-01
    • 2012-02-19
    • 2017-11-30
    相关资源
    最近更新 更多