PHP - 仅将键首先推送到数组并稍后添加值

时间:2017-10-25 13:34:03

标签: php arrays

我有一个foreach循环,我在其中浏览了一系列内容,并且我正在使用内容关系中的值创建一个关联数组。这是代码:

    $contentTaxonomies = [];
    foreach($contents as $content) {
        foreach($content->taxonomies as $taxonomy){
            $contentTaxonomies[$content->id][$taxonomy->type->name] = $taxonomy->name;
        }
    }

但是,这意味着如果content没有任何taxonomies它不会在$contentTaxonomies数组中,那么如何在不存在./gradlew -q app:dependencies数组的情况下进行循环有分类法,它仍然会添加到一个只有空值的数组?

3 个答案:

答案 0 :(得分:1)

你可以这样做:

$contentTaxonomies = [];
foreach($contents as $content) {
    $contentTaxonomies[$content->id] = [];
    foreach($content->taxonomies as $taxonomy){
        $contentTaxonomies[$content->id][$taxonomy->type->name] = $taxonomy->name;
    }
}

Basicaly我将空数组初始化为$ content-> id键的值,然后最终用数据填充它。

答案 1 :(得分:0)

只需在循环分类法之前创建数组:

$contentTaxonomies = [];
    foreach($contents as $content) {
        $contentTaxonomies[$content->id] = [];
        foreach($content->taxonomies as $taxonomy){
            $contentTaxonomies[$content->id][$taxonomy->type->name] = $taxonomy->name;
        }
    }

答案 2 :(得分:0)

$contentTaxonomies = [];
foreach($contents as $content) {
    $contentTaxonomies[$content->id] = [];
    if(isset($content->taxonomies)){ // This will check if `content` has taxonomies or not. Otherwise it will give error due to for each loop
        foreach($content->taxonomies as $taxonomy){
            $contentTaxonomies[$content->id][$taxonomy->type->name] = $taxonomy->name;
        }
    }
}