我有这段代码:
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']);
。