ecos商城 输出不同状态的数据 && 要去除,为空的数组 函数 array_filter()

问题:状态如下
全部,已收,代付款,完成
SELECT * FROM tfmall.tfm_subsales_commisions;
点击状态,出现不同状态的数据,首先考虑开始考虑<a herf="#idxx">已发货</a>
这样要写重复写几个状态、

第二考虑,function 带变量,因为每个状态的变量可以设定所以,根据变量状态去查找对的数据,

例子:

 public function index($status = 'pay_status0')
    {
        $this->title = '我的订单';
        $filter = array('member_id' =>  $this->member_id());
        if ($status == 'pay_status0')
        {
            $order_status['status'] = 0;//待付款
        }
        if ($status == 'pay_status1')
        {
            $order_status['status'] = 1;//可结算
            $filter['pay_status'] = $order_status['status'];//已付款
        }
        if ($status == 'ship_status1')
        {
            $order_status['status'] = 1;
            $filter['ship_status'] =  $order_status['status'];//已发货
            $filter['pay_status'] =   $order_status['status'];//已付款
        }
        if ($status == 'statusfinish')
        {
            $order_status['status'] = -1;
            $filter['status'] = 'finish';//已完成
        }
        if ($status == 'statusdead')
        {
            $filter['status'] = 'dead';//已关闭
        }
        $orders_id = $this->commisions_mdl->getlist('order_id,goods_id',$order_status);

        foreach($orders_id as $key3=>$val3){
            $filter['order_id'] = $val3['order_id'];
            $order[$key3] = $this->orders_mdl->dump($filter);
        }
        $order_arr = array();
        foreach ($order as $key => $val) {
            if (empty($val)) {
                continue;
            }
            $order_arr[] = $val;
        }
        $members = $this->members_mdl->getList('mobile,name',array('member_id'=> $this->member_id()));
        foreach($order_arr as $key=>$val){
            $oders_info[$key] = $this->orders_mdl->dump(array('order_id'=>$val['order_id']));
            $oders_info_img= $this->commisions_mdl->dump(array('order_id'=>$val['order_id']));
            $oders_info[$key]['img'] = $this->images($oders_info_img['goods_id']);
            $oders_info[$key]['mobile'] = $members[0]['mobile'];
            $oders_info[$key]['name'] = $members[0]['name'];
        }
        $this->pagedata['order']=$oders_info;
        $this->pagedata['status'] = $status;
        $this->page('wap/order/index.html');
    }
php例子

前端代码:

<h2 class="am-text-center am-text-xl am-margin-top-sm">我的订单</h2>
    <ul class="am-avg-sm-5 am-text-center am-text-lg">
        <li class="am-active">
            <a  class="<{if $status =='pay_status0'}>am-text-danger<{/if}>"
                href="<{link app=subsales ctl=wap_suborder act=index arg0='pay_status0'}>">待付款</a></li>
        <li><a class="<{if $status =='pay_status1'}>am-text-danger<{/if}>"
                href="<{link app=subsales ctl=wap_suborder act=index arg0='pay_status1'}>">已付款</a></li>
        <li><a class="<{if $status =='ship_status1'}>am-text-danger<{/if}>"
                href="<{link app=subsales ctl=wap_suborder act=index arg0='ship_status1'}>">已发货</a></li>
        <li><a class="<{if $status =='statusfinish'}>am-text-danger<{/if}>"
                href="<{link app=subsales ctl=wap_suborder act=index arg0='statusfinish'}>">已完成</a></li>
        <li><a class="<{if $status =='statusdead'}>am-text-danger<{/if}>"
                href="<{link app=subsales ctl=wap_suborder act=index arg0='statusdead'}>">已关闭</a></li>
    </ul>

    <div class="am-tabs-bd">
        <!-- 待付款 -->
        <div class="am-tab-panel am-fade am-in am-active" id="goods">
            <{if $order}>
            <{foreach from=$order item=item name=name}>
            <div class="am-panel am-panel-default">
               <div class="name"><{$item.name}></div>
                <div class="mobile"><{$item.mobile}></div>
                <div class="am-panel-hd">
                    订单号: <{$item.order_id}>
             <span class="am-fr">
                 <{if $status =='pay_status0'}>
            <a href="#" class="btn orange f-r">
                待付款
            </a><{/if}>
            </span>
                </div>
                <div class="am-panel-bd">
                    <ul class="am-list">
                        <!--缩略图在标题左边-->
                        <li class="am-g am-list-item-desced am-list-item-thumbed am-list-item-thumb-left">
                            <div class="am-u-sm-4 am-list-thumb">
                                <{foreach from=$item.img item=images name=images}>
                                <img src="<{$images|storager:'s'}>"
                                alt="<{$item.order_items.0.name}>" width="80" height="80"/>
                                <{/foreach}>
                            </div>
                            <div class=" am-u-sm-8 am-list-main">
                                <h3 class="am-list-item-hd">
                                    订单金额:<{$item.total_amount|cur_odr:$item.currency}>
                                </h3>
                                <div class="am-list-item-text">订单时间:<{$item.createtime|cdate:FDATE_STIME}></div>
                            </div>
                        </li>
                    </ul>
                </div>
            </div>
            <{/foreach}>
            <{else}>
            <{t}>暂无售后服务订单<{/t}>
            <{/if}>
        </div>
前端代码

 遇到的问题

举个例子,当foreach循环数据时,因为状态的原因,如果不是该状态的数据,其中某数组为空,

array(

[0]=》11,

[1]=》null,

[2]=>1sss,

这个时候,要去除,为空的数组

$array_arr = array();
foreach($order as $key=>$val){
if(empty($val){
  continue;
}
$array_arr[]=$val;
}
//这样就得出了数值不为空的全新的数组

 或者用 php自带函数 array_filter($orders);

 

$array1 =array('0' => array('0'=>'first','1'=>'two','2'=>'hp','3'=>''),
    '1' => array('0'=>'first','1'=>'two','2'=>'hp','3'=>'aaa'));
echo '<pre>';

foreach($array1 as $key=>$val){
    $array2[]= array_filter($val);
}
print_r(array_filter($array2));

 

posted @ 2016-08-16 15:13  MAKE-IN-LEMON  阅读(264)  评论(0)    收藏  举报