在数组内创建数组而不先创建键

时间:2017-07-10 06:23:07

标签: php arrays

这是我用来创建循环数据时在数组中不存在的键的方式:

$array = [];
foreach ($results as $result) {

    if (!isset($array[$result->id])) {
        $array[$result->id] = [];
    }

    $array[$result->id][] = $result->value;
}

一位在职的同事做了以下事情。 PHP没有错误,但我不确定它是PHP的一个功能还是不正确:

$array = [];
foreach ($results as $result) {
    $array[$result->id][] = $result->value;
}

上述情况对我来说不正确吗?

1 个答案:

答案 0 :(得分:3)

如果你输入代码的条件是不必要的。让我解释。

if (!isset($array[$result->id])) {
    $array[$result->id] = [];
}

这意味着如果$array[$result->id]不存在而不是您将其定义为数组,则$array[$result->id][]如果不存在则自行创建新数组而不会抛出任何错误。所以不需要使用if条件错误。总之,两个代码都是正确的,只是你正在使用不必要的if条件。