簡體   English   中英

如何檢查鍵數組是否具有相同的值或多個

[英]how to check if the key array has the same value or more than one

我有一個數組(變量$ items),其中存在相同的invenid(不止一個),如何檢查是否存在多個invenid,以及如何從每個現有數組中添加total_price並創建一個新的key(即Discount_price)。 這是我的數組: 排列 ![陣列] [1]

function apply_promotion($items){   
        foreach($items as $key => $val){
            if(isset($val['promo'])){
                $promo_type = $val['promo']['slug'];
                $start_date = $val['promo']['startdate'];
                $end_date = $val['promo']['enddate'];
                if(($start_date != '0000-00-00') && ($end_date != '0000-00-00') && (strtotime(timetodate(DT_TIME, 3)) >= strtotime($start_date)) && (strtotime(timetodate(DT_TIME, 3)) <= strtotime($end_date))){
                    switch($promo_type){
                        case "item-promotion":
                            $purchase = dround($val['total_price'], 2, 1);
                            if($purchase >= $val['promo']['min_purchase'] && empty($val['promo_code'])){
                                $items[$key]['discount_price']= dround($val['promo']['discount_amount'], 2, 1);
                            }
                            break;
                    }
                }
            }
        }

        echo '<pre>'.print_r($items, 1).'</pre>';die();
        return $items;
    }

您可以通過引用使用foreach

 foreach($a as $key => &$val){
   ($val['invenid'] > 1) ? ($val['total_price'] = 12.00) : '';
 }

DEMO

嘗試使用array_keys()

例如:

$array1 = array([0],[1]);

print_r(array_keys($array1));

它將返回數組中的所有鍵

您可以在這里找到更多信息

使用array_unique()函數,它將刪除數組中的重復值。 如果兩個或多個數組值相同,則將保留第一個外觀,並刪除另一個外觀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM