繁体   English   中英

我怎样才能从这个foreach获得正确格式的数组,并嵌入if中的条件?

[英]how can i get array in proper format from this foreach and nested if condition in php?

我很困惑,我是新来的PHP。 我使用此代码获取状态为“未付”的列表,所用时间(以天为单位)> 30或> 60或> 90天。 如果时间是> 30天,那么颜色应该是蓝色,> 60天,然后颜色应该是橙色,如果> 90天,那么颜色应该是红色。 所有条件都有效,但问题是我没有按照我想要的格式获得数组。

我的代码是

foreach ($listview_entries as $key => $value){
    $invoice_focus = new Invoice();
    $invoice_focus->id = $key;
    $invoice_focus->retrieve_entity_info($key, "Invoice");
    $invoicestatus = $invoice_focus->column_fields['invoicestatus'];
    $invoicedate = $invoice_focus->column_fields['invoicedate'];
    $currentdate = date("Y-m-d");
    $start_date2 = strtotime($invoicedate);
    $end_date2 = strtotime($currentdate);
    $difference = $end_date2 - $start_date2;
    $days = floor($difference/86400);
    $items = array();
    $color1 = array();
    if($invoicestatus == 'Unpaid' && $days>30)
    {
        if($days>60)
        {
            if($days>90)
            {
                $milan=array($key);
                $color=array_fill_keys($milan, 'red');
                //$smarty->assign('COLOR', $color);
            }
            else
            {
                $milan=array($key);
                $color=array_fill_keys($milan, 'orange');
                //$smarty->assign('COLOR', $color);
            }
        }
        else
        {
            $milan=array($key);
            $color=array_fill_keys($milan, 'blue');
            //$smarty->assign('COLOR', $color);
        }
        if(!empty($color)){
        array_push($color1,$color);
        }
        print_r($color1);
    }
    $smarty->assign('COLOR', $color1);
}

我得到这样的输出。

Array ( [0] => Array ( [89] => red ) ) Array ( [0] => Array ( [91] => blue ) ) Array ( [0] => Array ( [92] => orange ) ) 

但我想要这样。

Array ( [0] => Array ( [89] => red ),[1] => Array ( [91] => blue ),[2] => Array ( [92] => orange ) )

请帮帮我。

请删除以下行中的数组保留密钥表:

$milan=array($key);

所以,把这样的代码

$color [$key] = 'red';

代替

$milan=array($key);
$color=array_fill_keys($milan, 'red');

更新到这一个。

来自:

array_push($color1,$color);
$items = array($color1);

array_push($color1, $color);
if(!empty($color1)) {
    $items[] = $color1;
}

循环前$items = array()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM