这感觉非常基本,但我想我错过了一个技巧。假设我有这个:
$array[$key] += $value;
如果已设置$ array [$ key],则工作正常,但如果不是,则注意PHP未定义变量。
显然我可以做到
if (isset($array[$key]))
$array[$key] += $value;
else
$array[$key] = $value;
或
$array[$key] = (isset($array[$key])) ? $array[$key] + $value : $value;
但是我觉得可能还有更整洁的东西?
答案 0 :(得分:0)
而不是isset($ array [$ foo]),使用!empty($ array [$ foo])处理现有值,else处理不存在的索引。
答案 1 :(得分:0)
如果您在求和之前知道完整的$key
值是什么样的情况,那么您可以提前准备数组并仅使用+=
$array = array_fill_keys($all_keys, 0);
避免在循环中使用if / then是一件好事。