2016-03-03 2 views
0

кто-то может сказать мне, что этот код делает, Как им новое для Yii, узнав об этом .. им не в состоянии понять несколько вещей .. Вот код ..массив функций Yii Framework

$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'? 
    ); 

Мой вопрос, что эта строка кода делает именно в цикле Еогеасп

$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; 

так, что эта линия делает в этом коде в цикле Еогеаспа, что отличается между этими двумя линиями в первом и втором коде ..

$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

Это создает многомерный массив.

Ваш первый вопрос

$dataArr[$msg->date][] = array(
       'category' => $msg->category, 

будет генерировать выходной сигнал, как

[2016-03-04] => Array 
     (
      [0] => Array 
       (
        [category] => abc 
       ) 

     ) 

И ваш второй вопрос

$catArr[$catModel->id] =$catModel; 

будет genrate выход как

array(
    [0] =>1, 
    [1] => 2, 
    [2] => 3, 
) 

Не проверено.

1

Так что в соответствии с вашим первым вопросом.

$dataArr[$msg->date][] = array( 'category' => $msg->category,

$ allMsg является активной записи объект, который у достучаться запроса дб. Этот объект проходит в цикле, и каждая строка «$ msg».

Следовательно, вы можете получить доступ к атрибутам модели через категорию $ msg->. 'category' вот атрибут модели.

0

думаю, на ваш вопрос нет примерно Yii. Сначала вы должны прочитать о arrays PHP. В коде multidimensional array были использованы. Это означает, что массив может содержать другой массив как значение.