函数Yii Framework中的数组

时间:2016-03-03 07:20:16

标签: php yii

有人能告诉我这段代码是做什么的,作为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
}

3 个答案:

答案 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,
)

未经测试。