私がやろうとしていること:
複数選択入力からのPOSTデータをarray_diff()関数で処理します
初期コード:
$relations_to_delete=array_diff($selectedEnjeuxMetiers,$this->request->data['EnjeuxMembership']['EnjeuxMetier']);
Probem:複数選択入力で何も選択されていない場合は機能しませんでした
現在の解決策:
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"で動作します。問題は、データがない場合の型が空の配列ではなく、空の文字列であるということでした。