将 MySQL 行转换为单个数组

我需要做的是从我的数据库中收集每一行并将每一行放入自己的数组中


我想像 $row[1][1] 之类的东西(例如 $row[row number][column number]),我试过了


$query = "SELECT * FROM `table`;";


$result = mysqli_query($link, $query);


$Array = array();


$index = 0;


while($row = mysqli_fetch_assoc($result)) {


    $Array[$index] = $row;

    $index++;

}


echo $row[1][1];



但是回声似乎根本不起作用,我不知道哪里出错了?我一直在尝试修复它大约 2 小时,最终放弃了


繁华开满天机
浏览 316回答 3
3回答

紫衣仙女

在您的情况下,由于您正在使用mysqli_fetch_assoc()它将遍历表字段的所有行,并且$row如果您将其放入while循环中,该变量将具有与当前行关联的数组。如果您想在while循环之外访问它,您可以使用您在上面创建另一个数组的方法。在这种情况下,您仍然需要按名称引用该字段:<?php&nbsp;$query = "SELECT * FROM `table`";$result = mysqli_query($link, $query);$Array = array();?><pre><?php&nbsp; &nbsp;while($row = mysqli_fetch_assoc($result)) {&nbsp; &nbsp; $Array[] = $row;}print_r($Array[1]['your_field']);?></pre>&nbsp;

尚方宝剑之说

其他人已经说过,如果您使用mysqli_fetch_assoc().如果您使用mysqli_fetch_row($result)或使用mysqli_fetch_array($result, MYSQLI_NUM) ,则可以获得整数索引数组。如果您使用mysqli_fetch_all($result, MYSQLI_NUM) ,您还可以简化代码,这样您就不必编写自己的 while 循环。就像您描述的那样,该函数返回一个数组数组。

富国沪深

您可以简单地使用fetch_all(). 例如:<?phpmysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);$link = new mysqli('localhost', 'username', 'password', 'databaseName');$link->set_charset('utf8mb4'); // always set the charset$query = "SELECT * FROM `table` ";$result = $link->query($query); // If variables are involved you must use prepare/bind_param/execute$matrixOfRowsAndCols = $result->fetch_all();echo $matrixOfRowsAndCols[1][1];默认获取样式是数字数组,因此您将获得数字列索引以及数字行索引。不需要任何循环。
打开App,查看更多内容
随时随地看视频慕课网APP