我通過php(yii框架)中的代碼創建一個數組並填充變量(索引和值)。但我的程序不能正常工作。填充完後我無法使用我的數組。使用in_array和多維數組時獲得警告
在模型Lookup.php
private static $row_flags= array();
private static $table_flags= array();
public static function checkStatus($value,$row,$column) {
$thresholds= hreshold::model()->findAll(array('select'=>$row.','.$column));
self::$row_flags['browsing'][$row][$column]=($value < $thresholds[0]->$row) ?"green":(($value > $thresholds[0]->$column)?"red":"yellow");
return self::$row_flags['browsing'][$row][$column];
}
public static function getRowFlag() {
return self::$row_flags;
}
public static function row_color($table,$row){
return in_array("yellow",self::$row_flags['browsing'][$row]);
}
view.php
<?php
lookup::checkStatus(3001,'http','access');
lookup::checkStatus(3001,'http','access');
lookup::checkStatus(3001,'http','core');
lookup::checkStatus(3001,'http','blackbox');
lookup::checkStatus(3001,'http','gateway');
lookup::checkStatus(3001,'http','internet');
print_r(lookup::getRowFlag());
?>
Array
(
[browsing] => Array
(
[http] => Array
(
[access] => yellow
[core] => yellow
[blackbox] => yellow
[gateway] => yellow
[internet] => yellow
)
)
)
如果我在視圖調用Lookup::row_color('browsing','http')
我有
警告:in_array()預計參數2是array,null given
的
l(array('select'=>$row.','.$column));
您的代碼看起來不錯。顯示完整的視圖和模型。 – SiZE
我試過你的代碼,對我來說似乎很好。我嘗試了'var_dump(lookup :: getRowFlag()); var_dump(Lookup :: row_color('browsing','http'));'首先返回一個數組,另一個是真的......這是什麼問題?你以前使用'checkStatus()'嗎? –
其實你需要檢查array_key_exist的瀏覽索引,也爲$ row,然後是is_array ....因爲當這段代碼不是每次都執行self :: $ row_flags ['browsing'] [$ row]將是數組,所以更好地檢查並返回FALSE或什麼......如答案中所述。 –