这是我的一些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。但它似乎不起作用..有谁知道为什么?
通过数字索引,值 '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
不是一个数组。
$r
是一个一维数组,但你在最后一行代码($r['HQlevelPlusOne'][0]
)中引用了第二维。这是行不通的。
值 50 位于第 0 维度的第 0 个索引处。
它将处于位置 $headquartersRequired[0][0]
= 50。