在PHP中存储值

在PHP中存储值,php,multidimensional-array,hashtable,Php,Multidimensional Array,Hashtable,我试图用php存储值,就像一个有多个键的哈希表。例如,我希望它返回两个不同的值: $value1=$content['var1']['var2']['var3']['typea']; $value2=$content['var1']['var2']['var3']['typeb']; 实现这样一个功能的最佳方式是什么?您可以用获得值的相同方式设置值 $content['var1']['var2']['var3']['typea'] = $value1; $content['var1']['v

我试图用php存储值,就像一个有多个键的哈希表。例如,我希望它返回两个不同的值:

$value1=$content['var1']['var2']['var3']['typea'];

$value2=$content['var1']['var2']['var3']['typeb'];

实现这样一个功能的最佳方式是什么?

您可以用获得值的相同方式设置值

$content['var1']['var2']['var3']['typea'] = $value1;
$content['var1']['var2']['var3']['typeb'] = $value2;

您可以利用PHP作为动态脚本语言的优势,让它自动创建所需的数组结构:

 $content['var1']['var2']['var3']['typea'] = "value1";

与其构建一个复杂的数组,不如定义并使用一个简单的类?e、 g:

<?php
class beer {
  var $brand;
  var $ounces;
  var $container;
}

$mybeer = new beer();
$mybeer->brand = "Coors";
$mybeer->ounces = 12;
$mybeer->container = "can";

echo $mybeer->brand;
echo $mybeer->ounces;
echo $mybeer->container;
?>

一种方法是根据不同的键生成一个唯一的键,并将其存储在一个大数组中

而不是这个,

$value1=$content['var1']['var2']['var3']['typea'];
你会有这样的东西

$contentKey = generateKey("var1", "var2", "var3", "typeA");
$value1 = $content[$contentKey];

其中,
generateKey
将对各种输入进行散列,或使用一些唯一的分隔符(如四重下划线)将它们连接在一起。与其他解决方案相比,这需要更少的数组查找,而且(在我看来)更易于阅读

问题到底是什么?如何创建具有多个深度级别的关联数组?然后以这种方式实现?是的,或者如果除了数组之外我还应该使用其他东西。