php - 通过函数传递数组,更新值
问题描述
如果满足某些条件,我想更新数组中的“meet_time”。我成功检索了结果集:
$subject_set = get_array();
$results = mysqli_fetch_all($subject_set, MYSQLI_ASSOC);
然后它通过一个函数来尝试更新值:
function process_values($results) {
foreach($results as $k=>$v) {
if ($v['sun'] == '1') {
array_replace($results, [$v['meet_time']=>'1800']);
}
if ($v['mon'] == '1') {
array_replace($results, [$v['meet_time']=>'1200']);
}
$b[] = $v['meet_time'];
}
asort($b);
foreach ($b as $k=>$v) {
$c[] = $results[$k];
}
return $c;
}
$sorted = process_values($results);
我想使用这个新数组:
foreach ($sorted as $row) {
echo $row['meet_time'] . "<br />;
}
预期结果将是:
1200
1800
但它们与数据库中原始结果集中的结果相同(既不是 1200 也不是 1800)。我可以输入asort()
任何值,$b[]
但它不受array_replace()
功能的影响。我没有收到任何错误提示我做错了什么。
解决方案
您可以只分配替换的值而不是使用array_replace
代替
array_replace($results, [$v['meet_time']=>'1800']);
和
$results[$k]['meet_time'] = '1800'; //1200 or whatever value you want
或者
array_replace($results[$k], [$v['meet_time']=>'1800']);
推荐阅读
- plc - B&R Automation Studio 避免在不同位置或机器上构建相同源代码时重新启动 PLC
- android - Kotlin .let {} 空安全
- browserstack - 在 BrowserStack 上使用 nightwatch 运行自动化脚本时如何关闭 safari 弹出对话框?
- python - scikit中混淆矩阵的正确命名
- sql-server - 如何临时填充包含两个日期参数之间的日期的表格?
- java - 来自arraylist列表的Google guva过滤器
- laravel - 使用 Laravel 作为后端开发 SPA、移动应用程序时使用哪个 OAuth2 授权。不会使用第三方登录
- python - 使用 LSTM 进行序列分类,检查输入时出错
- php - laravel 多对多关系枢轴数据保存为空
- javascript - 如何删除textarea中的自定义文本?