CodeIgniter: проблема с использованием foreach - PullRequest
0 голосов
/ 29 апреля 2010

У меня есть модель и контроллер, который получает некоторые данные из моей базы данных и возвращает следующий массив

Array
(
    [2010] => Array
        (
            [year] => 2010
            [months] => Array
                (
                    [0] => stdClass Object
                        (
                            [sales] => 2
                            [month] => Apr
                        )

                    [1] => stdClass Object
                        (
                            [sales] => 1
                            [month] => Nov
                        )

                )

        )

    [2011] => Array
        (
            [year] => 2011
            [months] => Array
                (
                    [0] => stdClass Object
                        (
                            [sales] => 1
                            [month] => Nov
                        )

                )

        )

)

Он показывает именно то, что должен показывать, но ключи имеют разные имена, поэтому я не представляю, как пройтись по годам, используя foreach, на мой взгляд. Я не очень хорош в массивах: (

это контроллер, если вам нужно знать:

<code>    function analytics()
    {
        $this->load->model('admin_model'); 
        $analytics = $this->admin_model->Analytics();
        foreach ($analytics as $a):
            $data[$a->year]['year'] = $a->year;
            $data[$a->year]['months'] = $this->admin_model->AnalyticsMonth($a->year);
        endforeach;

        echo"<pre style='text-align:left;'>";
        print_r($data);
        echo"
"; $ data ['main_content'] = 'analytics'; $ this-> load-> view ('template_admin', $ data); } // конец категории функций ()

1 Ответ

2 голосов
/ 29 апреля 2010

помещает массивы лет в отдельный индекс в массиве, чтобы вы могли выделить его

foreach ($analytics as $a) {
    $data['dates'][$a->year]['year'] = $a->year;
    $data['dates'][$a->year]['months'] = $this->admin_model->AnalyticsMonth($a->year);
}

Тогда вы можете пройти через это, не беспокоясь о других данных

<?php foreach( $dates as $year => $year_content  ): ?>
<h2><?php echo $year ?></h2>

<?php foreach( $year_content['months'] as $months ): ?>
<h3><?php echo $months->month ?> - <?php echo $months->sales ?></h3>
<?php endforeach; ?>

<?php endforeach; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...