我正在尝试做的事情:
使用 array_diff() 函数处理来自多选输入的 POST 数据
初始代码:
$relations_to_delete=array_diff($selectedEnjeuxMetiers,$this->request->data['EnjeuxMembership']['EnjeuxMetier']);
问题:在多选输入中未选择任何内容时它不起作用
当前解决方案:
if(!empty($this->request->data['EnjeuxMembership']['EnjeuxMetier'])){
$relations_to_delete=array_diff($selectedEnjeuxMetiers,$this->request->data['EnjeuxMembership']['EnjeuxMetier']);
}else{
$relations_to_delete=$selectedEnjeuxMetiers;
}
此解决方案有效。!=null 不起作用,gettype()=="array" 也不起作用
问题:谁能解释为什么需要 if(!empty()) 测试,以及问题是来自 POST 数据还是 array_diff 函数?
编辑:它适用于 gettype()=="array"。问题是没有数据时的类型不是空数组而是空字符串。