PHP echo echo($ array)不输出任何内容

时间:2019-05-02 12:46:06

标签: php arrays

我正在尝试回显数组的最后一个值。由于某种原因,它没有打印任何内容。我可以回显特定值,例如

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']);   

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

您需要获取外部数组$array的最后一个元素,然后然后访问子索引weight

注意如何更改括号。 end($array)获取最后一个元素,该元素本身是一个数组,您可以使用['weight']

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

通过像原来一样执行echo end($array['weight']);,您正在要求PHP提取数组的最后一个元素$array['weight'],但是没有这样的索引weight$array[$x]中只有数字索引$array

答案 2 :(得分:0)

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

MODE="$(cat /etc/config/wireless | sed -n 's/\s*\(option mode.*\)/\1/p'"

答案 3 :(得分:0)

查询中只有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);