此问题在此处已有答案:
How to access mysql result set data with a foreach loop(13个答案)
2天前关闭。
我正在从数据库中获取数据,结果如下:
Array
(
[0] => Array
(
[username] => example@gmail.com
[processedDate] => 2022-11-09 10:22:00
[processed] => 1
)
[1] => Array
(
[username] => example@gmail.com
[processedDate] => 0000-00-00 00:00:00
[processed] => 0
)
[2] => Array
(
[username] => example@gmail.com
[processedDate] => 2022-10-26 11:07:00
[processed] => 1
)
[3] => Array
(
[username] => example@gmail.com
[processedDate] => 2022-11-14 17:21:00
[processed] => 1
)
[4] => Array
(
[username] => example@gmail.com
[processedDate] => 2022-09-19 10:50:00
[processed] => 1
)
)
很酷,但是我需要访问,例如,username
属性,这与我处理对象($myArray->username
)时的情况类似。
我试过了,但它不起作用,因为它不是一个对象,它是一个数组.
foreach($arr as $var) {
foreach($var as $el) {
echo $el->username;
}
}
我也试过用这个:
foreach($arr as $var) {
echo $var['username'];
}
我的目标是访问username、processedDate和processes属性,以便使用它们并评估条件。
我想得到的是:
Array
(
[0] => Array
(
[username] => example@gmail.com
)
[1] => Array
(
[username] => example@gmail.com
)
[2] => Array
(
[username] => example@gmail.com
)
[3] => Array
(
[username] => example@gmail.com
)
[4] => Array
(
[username] => example@gmail.com
)
)
这是我的完整代码:
$sql = "SELECT username, processedDate, processed FROM users_test";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()){
$arr[] = $row;
}
echo "<pre>";
print_r($arr); // The result of this is the first code I posted here.
3条答案
按热度按时间au9on6nz1#
当你把这两种想法结合起来时,你会有更好的机会。
2lpgd9682#
在某些限制条件下,您可以使用SELECT语句缩短整个过程,SELECT语句只返回用户名和
fetch_all()
(这需要使用mysqlnd或PHP 8.1+),这意味着您不必循环数据。n9vozmp43#
可以尝试使用数组Map函数