Php 具有用户指定尺寸的数组(或关联数组)

Php 具有用户指定尺寸的数组(或关联数组),php,c++,arrays,data-structures,hash,Php,C++,Arrays,Data Structures,Hash,我试图思考存储语法范例的适当数据结构。我想要类似于关联数组的东西,但具有任意数量的维度。在一个简单的例子中,很容易想到数据结构。如果范例的两个维度如下 性别男性、女性、中性 格主格、宾格、与格、属格 。。。然后在C++中使用哈希映射,或者PHP:/P>中的关联数组是有意义的。 $value['Masculine']['Accusative'] = 'foo'; $value['Neuter']['Dative'] = 'foo'; 问题是,对于给定的语言,任何数量的“维度”都可能很重要。当然有

我试图思考存储语法范例的适当数据结构。我想要类似于关联数组的东西,但具有任意数量的维度。在一个简单的例子中,很容易想到数据结构。如果范例的两个维度如下

性别男性、女性、中性

格主格、宾格、与格、属格

。。。然后在C++中使用哈希映射,或者PHP:/P>中的关联数组是有意义的。
$value['Masculine']['Accusative'] = 'foo';
$value['Neuter']['Dative'] = 'foo';
问题是,对于给定的语言,任何数量的“维度”都可能很重要。当然有一个上限,但我事先不知道它是什么。我希望用户指定重要值是什么,并能够动态地更改它们


是否有任何类型的数据结构具有这种灵活性,或者我需要使用特殊类或类似的东西创建自己的数据结构?

根据lorro的回答,可以通过创建带有向量或设置为键的has数据结构来实现

这里是一个Qt方法;大概它与std工具的工作原理类似

QHash< QSet<QString> , QString > paradigm;

QSet<QString> descriptor1;
descriptor1 << "Nominative" << "Masculine";
paradigm[descriptor1] = "foo";

QSet<QString> descriptor2;
descriptor2 << "Neuter" << "Dative";
paradigm[descriptor2] = "bar";

QSet<QString> descriptor3;
descriptor3 << "Feminine" << "Genitive";

qDebug() << paradigm.value(descriptor1, "No value")
         << paradigm.value(descriptor2, "No value")
         << paradigm.value(descriptor3, "No value");

但是PHP数组,因此PHP需要不同的方法。

那么问题是什么?您确定要从性别、大小写映射到某个对象,而不是将每个对象与性别关联吗,Case?数组已经有任意数量的维度,任何标量值作为键,最大可达php的内存限制。可能最简单的方法就是:std::map,尽管语法会有所不同,sg-like:v[{a,b,c}]=d;。可以用伪代码编写您想要实现什么?
"foo" "bar" "No value"