Home  >  Article  >  Backend Development  >  How to convert php result object to array

How to convert php result object to array

PHPz
PHPzOriginal
2023-04-24 14:49:20605browse

In PHP, we often use databases for data storage and retrieval operations. When we retrieve data from the database, we often need to convert the result object into an array for easy processing, display, or transfer to other programs for processing. This article will introduce you how to convert the result object into an array in PHP.

First of all, we need to make it clear that the result object in PHP is often of type PDOStatement or mysqli_result. These classes provide a series of methods for obtaining query result data. However, if you use these methods to obtain results directly, the returned data is often an object, which is not easy to process. Therefore, we need to convert the result object into an array.

Method 1. Use the fetchAll() method in PDO

When using PDO for database query, we can use the fetchAll() method to obtain the query results. This method returns a two-dimensional array containing the query results. Pass the array to the json_encode() function to convert it into JSON format and pass it to the front end for display or operation.

For example, the following code example demonstrates how to use the fetchAll() method in PDO to convert the result object into an array:

$stmt = $pdo->query('SELECT * FROM users');
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);

Method 2. Use the fetch_all() method in mysqli

When using mysqli to query the database, we can use the fetch_all() method to obtain the query results. This method returns a two-dimensional array containing the query results. Similarly, pass the array to the json_encode() function to convert it into JSON format and pass it to the front end for display or operation.

For example, the following code example demonstrates how to use the fetch_all() method in mysqli to convert the result object into an array:

$result = $mysqli->query('SELECT * FROM users')->fetch_all(MYSQLI_ASSOC);
echo json_encode($result);

Method 3. Manually traverse the result object and convert each row of data For array

In addition to the above two methods, we can also manually iterate through the result object and convert each row of data into an array. This method is relatively cumbersome, but may be helpful for some special needs.

The following is a sample code that manually traverses the result object and converts each row of data into an array:

$stmt = $pdo->query('SELECT * FROM users');
$result = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $result[] = $row;
}
echo json_encode($result);

Summary

The above are three ways to convert the result object into an array method. Among them, using the fetchAll() or fetch_all() method is the most common and simple method. It should be noted that using the fetchAll() or fetch_all() method may load all results into memory at once, which may cause insufficient memory if the result set is large. Therefore, when processing large result sets, we can use paging and other methods to reduce memory usage.

The above is the detailed content of How to convert php result object to array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn