一个常见的问题,但其他答案并不总是很清楚,所以如果在其他地方出现了一百万次,我深表歉意。
简单;我的数组中的零值从查询中返回,我想循环并用零替换它们。我一直在尝试以下代码;
$stat = $db->getUserStats($id, $code, $mod1, $mod2);
foreach ($stat as $key => $value) {
if ($value == null) {
$value = 0;
}
};
使用参考:
foreach ($stat as $key => &$value) {
您当前在if ($value == null)
中拥有的$value
不是实际数组值,而是foreach
创建的副本。
您还应使用严格的null
检查:if ($value === null)
您应该在foreach
循环之后删除参考。(请参阅foreach文档中的警告框。(
实现此目的的另一种可能的方法是在查询中使用表达式返回零而不是nulls。这会根据您正在使用的数据库而有所不同。