1

这是我的一些PHP:

$query = $db->prepare('SELECT * FROM villages WHERE owner = ? AND id = ?');
$array = array($_SESSION['id'], $_SESSION['viewing']);
$query->execute($array);
$r = $query->fetch();
$r['HQlevelPlusOne'] = $r['HQlevel'] + 1;
$logsNeeded = $headquartersRequired[$r['HQlevelPlusOne'][0]];

$logsNeeded 似乎不起作用,这是 $headquartersRequired 数组:

$headquartersRequired = array(array(50,     40,     55,    30),
                              array(90,     80,     100,   80));

例如,我如何将值称为“50”?假设在我当前的代码中 $r['HQlevelPlusOne'] 是 1。所以值 $logsNeeded 应该是 90 ..但它似乎不起作用..有谁知道为什么?

4

2 回答 2

3

通过数字索引,值 '50' 位于嵌套数组的索引 0 处,该数组本身位于索引 0 处。因此要检索它:

echo $headquartersRequired[0][0];

$headquartersRequired[0]指向数组的第一个索引$headquartersRequired。该值本身是一个数组,可以以相同的方式访问其元素,因此从那里$headquartersRequired[0][0]指向 . 中第一个数组的第一个元素$headquartersRequired

If $r['HQlevelPlusOne']is 1then$headquartersRequired[$r['HQlevelPlusOne'][0]]是错误的,因为它$r['HQlevelPlusOne'][0]会引用名为的数组$r['HQlevelPlusOne']中的第一个元素。但是$r['HQlevelPlusOne']11不是一个数组。

于 2013-11-12T21:18:28.593 回答
1

$r是一个一维数组,但您在最后一行代码 ( $r['HQlevelPlusOne'][0]) 中引用了第二维。那是行不通的。

50 的值位于第 0 维的第 0 个索引处。

它将在位置$headquartersRequired[0][0]= 50。

于 2013-11-12T21:18:52.893 回答