以下是我的一些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 ..但它似乎没有工作..有谁知道为什么?
答案 0 :(得分:3)
通过数字索引,值'50'位于嵌套数组的索引0处,嵌套数组本身位于索引0.所以要检索它:
echo $headquartersRequired[0][0];
$headquartersRequired[0]
指向数组$headquartersRequired
的第一个索引。该值本身就是一个数组,其元素可以以相同的方式访问,因此从$headquartersRequired[0][0]
指向$headquartersRequired
内第一个数组的第一个元素。
如果$r['HQlevelPlusOne']
为1
,那么$headquartersRequired[$r['HQlevelPlusOne'][0]]
是错误的,因为$r['HQlevelPlusOne'][0]
将引用名为$r['HQlevelPlusOne']
的数组中的第一个元素。但$r['HQlevelPlusOne']
为1
且1
不是数组。
答案 1 :(得分:1)
$r
是一维数组,但您在最后一行代码($r['HQlevelPlusOne'][0]
)中引用了第二个维度。那不行。
50的值位于第0维的第0个索引处。
它将处于$headquartersRequired[0][0]
= 50的位置。