PHP-首先将唯一键推送到数组,然后添加值

PHP-首先将唯一键推送到数组,然后添加值,php,arrays,Php,Arrays,我有一个foreach循环,在这个循环中,我遍历一个内容集合,并使用内容关系中的值创建一个关联数组。代码如下: $contentTaxonomies = []; foreach($contents as $content) { foreach($content->taxonomies as $taxonomy){ $contentTaxonomies[$content->id][$taxonomy->type->na

我有一个foreach循环,在这个循环中,我遍历一个内容集合,并使用内容关系中的值创建一个关联数组。代码如下:

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

但是,这意味着如果
内容
没有任何
分类法
它就不在
$contenttaxonomics
数组中,我如何循环,当它没有分类法时,它仍然会以空值添加到数组中?

您可以这样做:

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

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

只需在完整分类之前创建数组:

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

是的,当然,这就是我想要的,谢谢!你不认为当
内容
没有
分类法
时,内部的
foreach
会出错吗?
$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;
        }
    }
}