有人能告诉我这段代码是做什么的,作为Yii的新手,了解它..我无法理解一些事情..这是代码..
$allmsg = LogMsg::model()->findAll($criteria); //
$dataArr = array();
if (isset($allMsg) && sizeof($allMsg) != 0):
foreach ($allMsg as $msg) {
$dataArr[$msg->date][] = array( // array?
'category' => $msg->category, // what is that 'category' a variable or something else? and $msg->category, is what?
'time' => $msg->time,
'date' => $msg->date,
'user' => $msg->name
);
} endif;
$this->render('index', array(
'data' => $dataArr ) //what is that 'data'?
);
我的问题是,这行代码在foreach循环中的作用是什么
$dataArr[$msg->date][] = array(
'category' => $msg->category,
这是第二个代码......有类似的东西..
$allCat = Categories::model()->findAll($criteria);
$catArr=array();
if(isset($allCat) && sizeof($allCat)!=0):
foreach ($allCat as $catModel) {
$catArr[$catModel->id] =$catModel;
}
endif;
return $catArr;
那么这行代码在foreach循环中的作用是什么,第一和第二代码中这两行之间有什么不同。
$catArr[$catModel->id] =$catModel;
最后一件事......它是什么
public static function getID($category)
{
$arr = array(
'ast'=>1, // what are these things? from where are they coming? db?
'fp'=>5, //
'per'=>3,
'ts'=>6,
'lg'=>3
);
return isset($arr[$category])?$arr[$category]:null; //Ternary - Condensed if/else statement
}
答案 0 :(得分:1)
根据你的第一个问题。
$dataArr[$msg->date][] = array(
'category' => $msg->category,
$ allMsg是您通过db查询获得的活动记录对象。这个对象遍历循环,每一行都是" $ msg"。
因此,您可以通过$ msg->类别访问模型的属性。 'category'
这是模型的属性。
答案 1 :(得分:0)
我想,你的问题不是关于Yii。您应该首先阅读PHP的arrays。代码multidimensional array已被使用。这意味着数组可以包含另一个数组作为值。
答案 2 :(得分:0)
这是创建多维数组。
你的第一个问题
$dataArr[$msg->date][] = array(
'category' => $msg->category,
将生成类似
的输出[2016-03-04] => Array
(
[0] => Array
(
[category] => abc
)
)
你的第二个问题
$catArr[$catModel->id] =$catModel;
会像
一样生成输出array(
[0] =>1,
[1] => 2,
[2] => 3,
)
未经测试。