使用CakePHP在数组_diff中使用POST数据
我想做什么:使用CakePHP在数组_diff中使用POST数据,php,cakephp,post,Php,Cakephp,Post,我想做什么: $relations_to_delete=array_diff($selectedEnjeuxMetiers,$this->request->data['EnjeuxMembership']['EnjeuxMetier']); if(!empty($this->request->data['EnjeuxMembership']['EnjeuxMetier'])){ $relations_to_delete=array_diff($sel
$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;
}
使用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;
}
问题:在multiselect输入中未选择任何内容时,它不起作用
当前解决方案:
$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()=“数组”
问题:有人能解释为什么需要进行if(!empty())测试,以及问题是否来自POST数据或array_diff函数吗
编辑:它与gettype()=“数组”一起使用。问题在于,没有数据时的类型不是空数组,而是空字符串
其他信息:对于函数“empty()”,如果变量等于:
- “”(空字符串)
- 0(0作为整数)
- “0”(0作为字符串)
- 空的
- 假的
- array()(空数组)
- var$var;(已声明的变量,但类中没有值)
未选择任何选项时,该值应为“”或NULL。问题在于,没有数据时的类型不是空数组,而是空字符串。对该值进行var_转储,并告诉我们returnedIt返回的值为“”,因此它是空字符串。确定已解决。它与gettype()==数组一起工作。必须是第一次输入错误。var_dump(“!=null)返回false关于数组的正确信息是var_dump(“!==null),请使用is_数组函数。谢谢Fabiano。复制此评论,我将接受。