PHP Echo End($ array)没有打印任何东西



im试图呼应我数组的最后值。由于某种原因,它没有打印任何东西。我可以回声一个特定值,例如

echo $array[0]['weight'] 

打印第一个值。

$query = "SELECT * FROM calorycalc2 WHERE userid = $id[0]";
$result1 = mysqli_query($db, $query) or die(mysqli_error());
$array = array();
while($row = mysqli_fetch_assoc($result1)) {
   $array[] = $row;
}
echo end($array['weight']);   

您需要获取外部数组$array的最后一个元素,然后访问sub-index weight

请注意如何将支架更改到位。end($array)获取最后一个元素,并且本身就是一个数组,您可以使用['weight']

访问该元素
echo end($array)['weight']; 

通过像最初这样做的echo end($array['weight']);一样,您要求PHP获取数组的最后一个元素,即$array['weight'],但是$array中没有这样的索引weight(只有数字索引,$array[$x](。<</p>

如PHP文档end中所述,返回数组中的最后一个条目,因此我可以从您的代码中猜出的是您想要此:

echo end($array)['weight'];

您正在使用的是使用密钥'weight' $array['weight'](我猜这是一个数字(访问条目,并将该值传递给end函数。由于end函数期望一个数组,而不是数字,这将导致错误。

您可以以这种方式访问数组的最后一个元素

echo $array[count($array)-1]['weight'];

查询中只有1行。因为您正在使用指定ID访问结果。在这种情况下,您无需循环查询。仅当您有多行结果时才需要。访问最后一个元素

$query = "SELECT * FROM calorycalc2 WHERE userid = $id[0]";
$result1 = mysqli_query($db, $query) or die(mysqli_error());
$array = array();
$row = mysqli_fetch_assoc($result1)
$i = 0;
while($row as $key=>$value) {
   $array[$i] = $value;
   $i++;
}
echo end($array);