来自unset()的空数组值

时间:2018-02-20 22:40:46

标签: php arrays

我有这段代码:

for($count=0;$count<count($data['story_tags']);$count++){
    for($counter=0;$counter<count($data['story']['tags']);$counter++){
        if($data['story_tags'][$count]['tag_name'] == $data['story']['tags'][$counter]){    
            unset($data['story_tags'][$count]['tag_name']);
            break;
        }
    }
}

我正在做的是取消设置相似的数组值(tag_name)。我已经google了如何删除数组键/值和unset()是最流行的答案。我几乎每一篇文章都回答了这个问题。

我现在的问题是,我的数组中现在有空/未定义的数组键。因为它是一个关联数组。

这就是它的样子:

Array ( [0] => Array ( [tag_name] => LitRPG ) [1] => Array ( [tag_name] => Virtual Reality ) [2] => Array ( [tag_name] => Cyberpunk ) [3] => Array ( [tag_name] => Reincarnation ) [4] => Array ( [tag_name] => Summoned Hero ) [5] => Array ( ) [6] => Array ( [tag_name] => Slice of Life ) [7] => Array ( ) [8] => Array ( [tag_name] => Non-Human ) [9] => Array ( [tag_name] => Anti-hero ) )

正如您所看到的,它会导致我的项目中出现php通知,因为未设置的未定义数组值。我可以简单地在我的html中添加一个if(isset())条件,但我想知道我是否做错了什么?如果没有,我如何完全删除那些空数组。

或者我可以重新制作代码并使用相反的逻辑if(!matches){store into new array}然后再次使我过去的数组无用。

编辑:在代码之后添加了$data['story_tags'] = array_filter($data['story_tags']);

0 个答案:

没有答案