问题:只能从每个数组中输出一个字段
<?php
error_reporting(0);
session_start();
include('connect.php');
ob_start();
$category = array(
"dates" => array(),
"paragraphs" => array(),
"titles" => array()
);
if ($result = $mysqli->query("SELECT * FROM tips")){
if($result->num_rows){
while($row = $result->fetch_array(MYSQLI_ASSOC)){
//printf ("%s %s %s\n",$row["date"], $row["title"], $row["paragraph"]);
$dates= array($row["date"]);
$titles = array($row["title"]);
$paragraphs = array($row["paragraph"]);
}
}
$result->free();
}
?>
我希望首先显示数组中的最后一个,以便我使用此
<?php echo $titles[count($titles)-1]?>
我认为问题在于我的循环,我认为每次循环时它都会重新分配数组
答案 0 :(得分:3)
while
的每次迭代都会在您的变量中创建一个新数组,第一个位置存储当前行数据迭代。
每次都覆盖最后一次,不要$data = array($row['data'])
而是$data[] = $row['data']
。
这样,您可以将每次迭代的值推送到数组的新索引中。
答案 1 :(得分:1)
您没有正确地向$category
数组添加值:
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$category['dates'][] = $row["date"];
$category['titles'][] = $row["title"];
$category['paragraphs'][] = $row["paragraph"];
}
现在,使用$dates= array($row["date"])
等,您只需将值一次又一次地分配给相同的(从未声明的)$dates
变量。