【问题标题】:Mysql result into 2d array phpMysql结果转换为二维数组php
【发布时间】:2013-10-12 12:18:27
【问题描述】:
$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 我不能像以前那样简单地回显它。

【问题讨论】:

  • 你能详细说明一下吗?如何将结果放入与以前功能相同的二维数组中。
  • 要在数据库中查找某些东西,您需要使用数据库方法。这就是 SQL 的实际用途。
  • @YourCommonSense 亲爱的普通人,非常感谢你的反对票,我想一定是你!请向我们这些普通人解释一下,对这个 chaps 查询进行任何数量的更改将如何提高他的理解,即从查询返回的数据不会是与他手动生成的形状数组相同的形状数组。跨度>
  • @RiggsFolly 实际上保持数据不变是没有问题的。
  • @YourCommonSense 在我的回答中,您看起来就像我正在更改查询返回的数组一样。我在解释他现在如何处理原始查询所传递的数据?

标签: php mysql arrays mysqli multidimensional-array


【解决方案1】:

首先

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多