1

我正在处理GROUP BY查询的结果,该查询不会为所有常量排列生成结果。它显然给出了我想要的“未定义索引”通知。

我当然可以使用isset,但这意味着(索引的)代码重复。另一种方法是使用变量来存储索引,但这意味着每一行这样的代码现在都是两行。我喜欢这行代码的可读性。

$stat->setMapped($companyStats["Account"][mypackage_MyClass::$STATUS_ACCEPTED]);

有什么办法(除了错误操作符@来避免这个通知)?

4

2 回答 2

1

您应该从一个定义了所有键的数组开始,然后将您的数组合并到其中。结果将具有您定义的值和未定义的 null (或您设置的任何默认值)。

$allTheKeysYouWant = array('key1' => null, 'key2' => null, ...);
$keysFilled = array_merge($allTheKeysYouWant, $yourArray);
于 2012-05-31T08:13:31.890 回答
1

在setMapped函数声明中,通过引用接受参数,即

function setMapped(&$companyStats) {
    if (isset($companyStats)) {
         ....
于 2012-06-01T10:54:08.200 回答