Yii вывод только первые значения из foreach()

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Yii вывод только первые значения из foreach()

Сообщение myks1992@mail.ru »

Всем привет! имею данные:

Код: Выделить всё

$array  = [
	0 => [
		'id' => 29,
		'number' => 1,
		'user_id' => 10,
		'profile' => [
			'club_id' => 777,
			'last_name' => 'Ворожцова',
		'user_id' => 10,
            'name' => 'Елена',
		],
	],
	1 => [
		'id' => 28,
		'number' => 2,
		'user_id' => 50,
		'profile' => [
			'club_id' => 222,
			'last_name' => 'Ворожцов',
		'user_id' => 50,
            'name' => 'Максим',
		],
	],
	2 => [
		'id' => 30,
		'number' => 2,
		'user_id' => 100,
		'profile' => [
			'club_id' => 222,
			'last_name' => 'Федоров',
		'user_id' => 100,
            'name' => 'Максим',
		],
	],
];
Как при переборе этих через foreach выводит уникальные данные только 1 раз? Весь массив делать уникальным не нужно.

Например, если при переборе сделующее значение будет такое же как выше, то его не выводим, если значение новое, то выводим информацию
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Yii вывод только первые значения из foreach()

Сообщение andku83 »

в конце цикла в временную переменную сохраняйте текущие данные, а в начале сравнивайте временную с текущими данными
myks1992@mail.ru
Сообщения: 147
Зарегистрирован: 2017.11.15, 23:54

Re: Yii вывод только первые значения из foreach()

Сообщение myks1992@mail.ru »

andku83 писал(а): 2018.06.12, 15:27 в конце цикла в временную переменную сохраняйте текущие данные, а в начале сравнивайте временную с текущими данными
Благодарю! А как их группировать в таблице в <tbody>

Код: Выделить всё

<?php Pjax::begin(['id'=>'grid-pjax']); ?><?php
                $models = $dataProvider->getModels();
                $clubId ='';
                $userId = '';
            ?>
                <div class="print">
                    <?php foreach ($models as $model):?>
                        <?php if ($clubId !== $model->profile->club_id):?>
                            <?php if ($model->profile->club_id):?><span>Коллектив: <strong><?=$formatter->asText($clubName = $model->profile->club->name)?></strong></span><?endif;?>
                            <?php if ($model->profile->city_id):?><span>Город: <strong><?=$formatter->asText($model->profile->city->name)?></strong></span><?endif;?>
                            <?php if ($model->profile->club_id):?><span>Руководитель: <strong><?=$formatter->asText($model->profile->club->chiefId1->getFullName())?></strong></span><?endif;?>
                        <? endif; ?>
                            <?php if ($userId !== $model->user_id):?>
                                <h4><?=$model->profile->getFullName()?></h4>
                            <? endif; ?>
                                <table class="table table-bordered table-payment">
                                    <thead>
                                        <tr class="table-head">
                                            <td>№ участника</td>
                                            <td>Ранг</td>
                                            <td>Дисциплина</td>
                                            <td>Номинация</td>
                                            <td>Возрастная категория</td>
                                            <td>Композиция</td>
                                            <td>Взнос</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr class="table-body">
                                            <td><?=$formatter->asInteger($model->number)?></td>
                                            <td><?=$formatter->asText($model->rang->getShortName())?></td>
                                            <td><?=$formatter->asText($model->discipline->getShortName())?></td>
                                            <td><?=$formatter->asText($model->nomination->getShortName())?></td>
                                            <td><?=$formatter->asText($model->category->getShortName())?></td>
                                            <td><?=$formatter->asText($model->music?$model->music->composition_name:null)?></td>
                                            <?php if ($model->price):?><td><?=$formatter->asText($model->price->cost)?></td><?else:?><td>—</td><?endif;?>
                                        </tr>
                                    </tbody>
                                </table>
                        <?php
                            $clubId = $model->profile->club_id;
                            $userId = $model->user_id;
                        ?>
                    <?php endforeach;?>
                </div>
            <?php Pjax::end(); ?>
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Yii вывод только первые значения из foreach()

Сообщение andku83 »

Не разобрались с группировкой, теперь начинаете городить что попало...
Ответить