三元数组组装及循环

Array
(
    [0] => Array
        (
            [fruits] => Array
                (
                    [0] => Array
                        (
                            [fruits1] => 苹果1
                            [fruits2] => 桔子1
                            [fruits3] => 香蕉1
                        )
                )
            [vegetables] => 白菜1
        )
    [1] => Array
        (
            [fruits] => Array
                (
                    [1] => Array
                        (
                            [fruits1] => 苹果2
                            [fruits2] => 桔子2
                            [fruits3] => 香蕉2
                        )
                )
            [vegetables] => 白菜2
        )
)

<p>食物品种:</p><br />
<volist name="food" id="vo">
  <volist name="vo['fruits']" id="f">
  <p>水果1:{$f['fruits1']}</p>
  <p>水果2:{$f['fruits2']}</p>
  <p>水果3:{$f['fruits3']}</p>
  </volist>
  <p>蔬菜:{$vo['vegetables']}</p><br />
</volist>

组装

// 删除不在所在环节的变更,分配相关数据到模板输出
        foreach ($lists as $k => $v) {

            $real = M('cost')->where(array('id' => $v['id']))->getField('link_at_present');
            if($v['link'] != $real || empty($v['last'])){
                unset($lists[$k]);
            }else{

                $choices = M('cost')->field('name,project_category,budget_encoding,budget_item_name,sub_item,order_contract_number,order_contract_name,contract_each_other,contract_amount,link_at_present')->where(array('id' => $v['id']))->select();
                $v = array_merge($v,$choices['0']);
                $tem = $v['time'];
                $v[$tem] = $v['value'];
                $lists[$k] = $v;
                 
            }
        }
        reset($lists);
        // p($lists);
        $re = array();
        foreach ($lists as $key => $val) {
            $thisId = $val['id'];
            $thisField = $val['field'];
            $thisTime = $val['time'];

    
            if(!is_array($re[$thisId]))
            $re[$thisId] = array();

            if(!is_array($re[$thisId][$thisField]))
            $re[$thisId][$thisField] = array();

            $re[$thisId][$thisField]['name']  = $val['name'];
            $re[$thisId][$thisField]['project_category']  = $val['project_category'];
            $re[$thisId][$thisField]['budget_encoding']  = $val['budget_encoding'];
            $re[$thisId][$thisField]['budget_item_name']  =  $val['budget_item_name'];
            $re[$thisId][$thisField]['sub_item']  = $val['sub_item'];
            $re[$thisId][$thisField]['order_contract_number']  = $val['order_contract_number'];
            $re[$thisId][$thisField]['order_contract_name']  = $val['order_contract_name'];
            $re[$thisId][$thisField]['contract_each_other']  = $val['contract_each_other'];
            $re[$thisId][$thisField]['contract_amount']  = $val['contract_amount'];
            $re[$thisId][$thisField]['link_at_present']  = $val['link_at_present'];
            $re[$thisId][$thisField]['field']  = $thisField;
            $re[$thisId][$thisField]['last']  = $val['last'];
            if(!$re[$thisId][$thisField]['count'])
                $re[$thisId][$thisField]['count'] = 0;
            if(!is_array($re[$thisId][$thisField][$thisTime]))
            $re[$thisId][$thisField][$thisTime] = array();
            $re[$thisId][$thisField][$thisTime] = $val[$thisTime];
            $re[$thisId][$thisField]['count']++;


<notempty name="list">
        <volist name="list" id="vof" key="kf">
            <volist name="vof" id="vo" key="k">
            <tr>
                <td>{$kf}</td>
                <td>{$vo.name}</td>
                <td>{$vo.project_category}</td>
                <td>{$vo.budget_encoding}</td>
                <td><div class="alter" title="{$vo.budget_item_name}">{$vo.budget_item_name}</div></td>
                <td><div class="alter" title="{$vo.sub_item}" >{$vo.sub_item}</div></td>
                <td><div class="alter" title="{$vo.order_contract_number}" >{$vo.order_contract_number}</div></td>
                <td><div class="alter" title="{$vo.order_contract_name}" >{$vo.order_contract_name}</div></td>
                <td>{$vo.contract_each_other}</td>
                <td>{$vo.contract_amount}</td>
                <td>{$vo.link_at_present}</td>
                <td><div class="alter" title="{$vo.field}" >{$vo.field}</div></td>
                <td>{$vo.count}</td>
                <td>{$vo.last|date='Y/m/d', ###}</td>
                <volist name="time" id="v" key="k">
                    <notempty name="vo[$v]">
                          <td>{$vo.$v|date='Y/m/d', ###}</td>
                          <else />
                          <td></td>
                      </notempty>
                </volist>    
            </tr>
            </volist>
        </volist>
        <else/>
        <td colspan="15" class="text-center"> aOh! 暂时还没有内容! </td>
        </notempty>

 

posted on 2015-12-30 14:17  阿卡贝拉  阅读(273)  评论(0)    收藏  举报