我創建操縱CSV文件PHP類的多維數組。 作爲班級的一部分,我有一個功能,允許過濾數據showOnlyWhere
。但是,我收到331行(foreach
聲明行)上的此錯誤Invalid argument supplied for foreach()
。我試着添加global $arr;
但這沒有奏效。我將如何解決它?過濾基於另一個數組
$this -> rows
是包含所有CSV數據的多維陣列。
$arr
的格式爲:
$key=>$val array(
$key = Column Name
$val = value that column should contain
)
下面是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;
}
我認爲錯誤可能有一些做的匿名函數 - 但我真的不知道。
IM過濾'$ rows' – jamesmstone