在 PHP 中,查询结果有时候会以不同的形式返回,可能是一个对象,也可能是一个数组,有时候我们想要的结果是一个数组。因此,这里介绍几种将查询结果转为数组的方法,让查询结果更符合我们的需求。

  1. fetch_assoc() 方法

fetch_assoc() 方法返回一个关联数组,其中的键名是数据库中的字段名,键值则是记录中的对应值。fetch_assoc() 方法返回查询结果的一行数据,调用一次该方法只能返回一行,如果要读取其他行,需要再次调用该方法。

示例代码如下:

// 假设 $conn 是 MySQL 数据库连接对象
$sql = "SELECT id, name, age FROM users";
$result = $conn->query($sql);

// fetch_assoc 方法返回一个关联数组
while ($row = $result->fetch_assoc()) {
    echo $row['id'] , $row['name'] , $row['age'];
}
登录后复制
  1. fetch_array() 方法

fetch_array() 方法返回一个既包含数字索引也包含关联索引的数组,它类似于一个关联数组和一个索引数组的组合。数字索引对应的是查询结果中的列的索引,关联索引对应的是数据库中的字段名。这种方式与fetch_assoc() 方法类似,只是返回的数组方式不同。

示例代码如下:

// 假设 $conn 是 MySQL 数据库连接对象
$sql = "SELECT id, name, age FROM users";
$result=$conn->query($sql);

// fetch_array 方法返回一个包含关联和数字索引的数组
while ($row = $result->fetch_array()) {
    echo $row['id'] , $row['name'] , $row['age'];
}
登录后复制
  1. fetch_all() 方法

fetch_all() 方法返回一个全部结果集,此方法需要在 mysqli 扩展版本5.3.0以上才能使用,且只支持使用 MySQL 扩展驱动。返回的结果是一个二维数组,每个子数组是一行数据,其中子数组中的元素对应的是该行记录中的每个字段。使用该方法可以简化代码。

示例代码如下:

// 假设 $conn 是 MySQL 数据库连接对象
$sql = "SELECT id, name, age FROM users";
$result = $conn->query($sql);

// fetch_all 方法返回一个二维数组
$data = $result->fetch_all();
foreach ($data as $row) {
    echo $row[0] , $row[1], $row[2];
}
登录后复制

总结

利用 fetch_assoc() 方法可以获取到以字段名为键名的关联数组,利用 fetch_array() 方法返回一个既包含数字索引也包含关联索引的数组,而 fetch_all() 方法则可以直接返回一个全部结果集的二维数组。根据具体情况,选择使用不同的方法来获取查询结果数组,可以帮助我们更方便地操作数据。

以上就是php怎么将查询结果转为数组(三种方法)的详细内容,更多请关注Work网其它相关文章!

09-13 23:41