如何检查键数组是否具有相同的值或多个

我有一个数组(变量 $items),其中有相同的 invenid(多个)如何检查是否有多个 invenid 以及如何从每个现有数组添加 total_price 并创建一个新的键为 discount_price。这是我的数组:

http://img2.mukewang.com/618495c40001664a05130836.jpg

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;

    }


九州编程
浏览 119回答 3
3回答

慕田峪4524236

您可以使用foreachwith pass by reference&nbsp;foreach($a as $key => &$val){&nbsp; &nbsp;($val['invenid'] > 1) ? ($val['total_price'] = 12.00) : '';&nbsp;}

慕仙森

尝试使用&nbsp;array_keys()前任:$array1&nbsp;=&nbsp;array([0],[1]); print_r(array_keys($array1));它将返回数组中的所有键您可以在此处找到更多信息

眼眸繁星

使用 array_unique() 函数,它将从数组中删除重复值。如果两个或多个数组值相同,则保留第一个出现,删除另一个
打开App,查看更多内容
随时随地看视频慕课网APP