php - Mysql结果转换成二维数组php

标签 php mysql arrays mysqli multidimensional-array

$thearray = array
(
    //(0)ID, (1)NAME, (2)LOCATION, (3)PHONE
    array("0","Name 1","Nowhere 11","0004444"),
    array("1","Name 2","Everywhere 11","0005555"),
    array("2","Name 3","ThisPlace 11","0002222"),
    array("3","Name 4","NoPlace 11","0003333"),
    array("4","Name 5","ThatPlace 11","0001111")
);

这就是我过去存储信息的方式 然后我会浏览它们以找到我需要的东西 并使用例如

显示它们
echo $thearray[$i][4]

我想做同样的事情,除了将该信息存储在 Mysql 中 这就是我已经走了多远,但我不断收到奇怪的错误,并且无法从数组输出

这就是我已经走了多远

$result = $db->query("SELECT * FROM table");
$thearray = array();
while($thearray = $result->fetch_assoc()){
   $thearray[] = $thearray;
}

出于某种原因,这对我不起作用,就像它不像我上面那样位于二维数组中:S我不能像以前那样简单地回显它。

最佳答案

首先

while($thearray = $result->fetch_assoc()){
    $thearray[] = $thearray;
}

会不断覆盖数组并变得非常困惑 尝试一下

while($row = $result->fetch_assoc()){
    $thearray[] = $row;
}

从查询返回的数组不再是一个简单的数组,而是一个关联数组

即它看起来像这样:

$new_array = array
(
//(0)ID, (1)NAME, (2)LOCATION, (3)PHONE
    array('ID' => "0", 'NAME' => "Name 1", 'LOCATION' => "Nowhere 11", 'PHONE' => "0004444"),
    array('ID' => "1", 'NAME' => "Name 2", 'LOCATION' => "Nowhere 22", 'PHONE' => "0005555"),
    etc
);

所以现在当你想使用它时,你必须使用这种构造

$name     = $new_array[$i]['NAME']
$location = $new_array[$i]['LOCATION']
etc

<?php echo $new_array[$i]['NAME']; ?>
<?php echo $new_array[$i]['LOCATION'] ?>
etc

关于php - Mysql结果转换成二维数组php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199196/

相关文章:

javascript - Ajax在php中提交表单序列化数据为空

arrays - 如何在 MATLAB 中计算数组的具体值?

javascript - 在另一个数组javascript中查找数组元素的索引

c++ - 为什么当我将数组换成 vector 时这段代码不再有效?

php - 如何使用 Javascript 或 PHP 存储 Accordion 菜单的状态(打开或关闭)

php - CakePHP测试: Cannot modify header information - headers already sent by

php - 从 php 运行 shell 脚本并查看完整进度?

php - 尽管在 mysql 数据库中可用,但 Codeigniter 未获取数据

php - Yii2 中的 ModelSearch 查询错误

php - 提交登录表单后,URL 保留在操作 php 上