php - 尽管我在那里添加了数据,但为什么此时数组始终为空?
问题描述
$result = mysqli_query($con, "SELECT * FROM users");
$usersArray=[];
tableArrayPushData($result, $usersArray);
function tableArrayPushData($result, $tableArray){
while ($row = $result->fetch_assoc()) {
$str = '';
foreach ($row as $value) {
$str = $str.$value.'|';
}
$newStr = rtrim($str, "| ");
array_push($tableArray,$newStr);
}
}
for ($i=0; $i<count($usersArray); $i++){//array is always empty at this point
echo "Ok";
echo "<br>";
}
我不明白为什么,但usersArray
尽管我在那里添加了数据,但它是空的。
MySQL 表有数据行,所以不能为空。
解决方案
您应该使用&
运算符来允许函数访问外部变量,如下所示:
function tableArrayPushData($result, &$tableArray) {}
或使用return
.
推荐阅读
- sql - 用 SQL 中同一 SELECT/表/不同列中的值替换 SELECT 结果中的值
- pfx - 如何配置 pfx 证书
- scala - 如何将函数应用于数据框中的每个字符串
- angular - 离子角电容器 - 未找到 FileOpener 活动:未找到处理意图的活动
- android - 检查 VPN 上的 Internet 连接
- javascript - [Vue 警告]:指令中的错误 intersect unbind 挂钩:“TypeError:无法读取未定义的属性‘观察者’”
- docker - 如何调整 Jenkinsfile 中的 ContainerTemplate 以从私有注册表获取图像
- python - 输入并保存用户名和密码到同一个文件
- php - PHP & XML:带冒号的 XML 响应的访问属性?
- node.js - 使用 Angular 13 安装 ngrx 商店时出现错误无法解析依赖关系树