Собственно сабж. Есть элемент массива, который надо вывести. Вот пример. PHP: <?php $array['actions'] = unserialize('a:14:{s:10:"2007-07-17";a:1:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"2";}}s:10:"2007-07-16";a:3:{i:0;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"1";}i:2;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:5:"moved";s:3:"cnt";s:1:"1";}}s:10:"2007-07-15";a:2:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"2";}i:1;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:5:"moved";s:3:"cnt";s:1:"1";}}s:10:"2007-07-14";a:3:{i:0;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"1";}i:2;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"2";}}s:10:"2007-07-13";a:3:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"2";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:2:"26";}i:2;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"4";}}s:10:"2007-07-12";a:1:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"2";}}s:10:"2007-07-11";a:2:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"4";}i:1;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"3";}}s:10:"2007-07-10";a:3:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"1";}i:2;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"7";}}s:10:"2007-07-09";a:3:{i:0;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:5:"moved";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"2";}i:2;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"5";}}s:10:"2007-07-08";a:2:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"2";}}s:10:"2007-07-07";a:2:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"1";}i:1;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:6:"edited";s:3:"cnt";s:1:"2";}}s:10:"2007-07-06";a:1:{i:0;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:5:"moved";s:3:"cnt";s:1:"1";}}s:10:"2007-07-05";a:1:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"9";}}s:10:"2007-07-04";a:2:{i:0;a:3:{s:8:"fme_code";s:3:"msg";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"3";}i:1;a:3:{s:8:"fme_code";s:5:"topic";s:10:"fme_status";s:7:"deleted";s:3:"cnt";s:1:"6";}}}'; echo '<pre>'.print_r($array, true).'</pre>'; и есть вот такой темплейт PHP: <?if (isset($value['actions'])){?> <? echo serialize($value['actions']) ?> <br /><br /><span class="color4" style="font-weight: bold;"><?=_("Статистика модератора за прошедшую неделю")?></span><br /><br /> <?foreach ($value['actions'] as $key => $value){?> <span style="font-weight: bold;"><?=$key?></span><br /> <div style="margin-left: 10px;"> <?foreach ($value as $row){ if ($row['fme_code'] == 'topic'){ print ($row['fme_status'] == 'deleted' ? _("Тем удалено") : _("Тем перенесено")).': '.$row['cnt'].'<br />'; }else{ print ($row['fme_status'] == 'deleted' ? _("Cообщений удалено") : _("Сообщений отредактировано")).': '.$row['cnt'].'<br />'; } }?> </div> <?} }else{?> <br /><br /><span class="color3" style="font-weight: bold;"><?=_("За прошедшую неделю модератор активен небыл")?></span> <?}?> Есть идеи как можно более просто сделать это? Это информация для одного юзера, юзеров много, поэтому это крутиться внутри ещё одного foreach
Мне кажется лучше делать не так! 1 . Делаешь темплейт в видк html страницы в котором вместо динамических данных ставишь какие то теги типа {main}, {left} 2 . Пишишь код который будет из данного темплейта удалять заданные тобой теги и вставлять твои данные. Лучше сделать это при помощи регулярных выражений. При этом упрощается разработка темплейтов и их сменность. Возрастает гибкость твоего кода
упростить и ускорить вообщето не синоним! Ладно подаждем пока сам автор ответи! По поводу скорости да его код быстрее! но намного ли и стоит он ли этого! (его сложности)
1). Это и есть шаблон. Я не использую псевдо-шаблонизаторы, а прямой PHP код в шаблонах. Под упростить я иммел ввиду то, что у меня получаеться 3 вложенных foreach, хотелось бы обойтись двумя, что само по себе ускорит темплейт. Сложность темплейта - уважаемый, вы вглядитесь в то, какой у меня масив, вывести его у меня по другому не получаеться.
Код (Text): например: array( '2007-09-11' => array( 'topic_del' => 1,http://php.ru/forum/posting.php?mode=reply&t=7585 Ответить на тему 'mess_edit' => 1, 'mess_del' => 2 ), .... )