Je crée une classe PHP qui manipule les fichiers csv. Dans le cadre de la classe, j'ai une fonction qui permet de filtrer les données showOnlyWhere
. Cependant, j'obtiens cette erreur Invalid argument supplied for foreach()
sur la ligne 331 (la ligne avec l'instruction foreach
). J'ai essayé d'ajouter global $arr;
mais cela n'a pas fonctionné. Comment pourrais-je le réparer?Filtrage d'un tableau multidimensionnel basé sur un autre tableau
$this -> rows
est un tableau multidimensionnel contenant toutes les données csv.
$arr
est au format:
$key=>$val array(
$key = Column Name
$val = value that column should contain
)
ci-dessous est la fonction showOnlyWhere
function showOnlyWhere($arr)
{
if($this->showOnlyWhere == true){
$rows = $this->filteredRows;
}
else{
$rows = $this->rows;
}
$filter = function ($item){
global $arr; // didn't work
foreach($arr as $chkCol => $chkVal){
if ($item[$arr[$chkCol]] != $chkVal){
return false;
break(3);
}
}
return true;
};
$this->filteredRows = array_filter($rows,$filter);
$this->showOnlyWhere = true;
}
Je pense que l'erreur pourrait avoir quelque chose à voir avec la fonction Anonymous - mais je ne suis pas vraiment sûr .
Im filtrant '$ rows' – jamesmstone