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

Php 如何检查键数组是否具有相同的值或多个值,php,mysql,arrays,foreach,Php,Mysql,Arrays,Foreach,我有一个数组(变量$items),其中有相同的invenid(多个),如何检查是否有多个invenid,如何从每个现有数组中添加一个总价,并创建一个新的键,即折扣价。 这是我的阵列: ![现场][1] function apply_promotion($items){ foreach($items as $key => $val){ if(isset($val['promo'])){ $promo_type =

我有一个数组(变量$items),其中有相同的invenid(多个),如何检查是否有多个invenid,如何从每个现有数组中添加一个总价,并创建一个新的键,即折扣价。 这是我的阵列: ![现场][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;
    }
函数应用\u促销($items){
foreach($key=>$val的项目){
如果(isset($val['promo'])){
$promo_type=$val['promo']['slug'];
$start_date=$val['promo']['startdate'];
$end_date=$val['promo']['enddate'];
如果($start_date!='0000-00-00')&($end_date!='0000-00-00')&($start_date!='DT_TIME,3))>=STROTIME($start_date))&($STROTIME(TIMETOTODE,3))=$val['promo']['min_PUSHARE']&&empty($val['promo code'])){
$items[$key][‘折扣价格’]=drond($val['promo'][‘折扣金额’),2,1);
}
打破
}
}
}
}
回显“”。打印($items,1)。“”;模具();
$array1 = array([0],[1]);

print_r(array_keys($array1));
退回$items; }
尝试使用
数组键()

例:

它将返回数组中的所有键


您可以找到更多信息

您可以将
foreach
与pass-by-reference一起使用


使用数组_unique()函数,它将从数组中删除重复的值。如果两个或多个数组值相同,将保留第一个外观,另一个将被删除

请编辑您的问题并添加一个示例数组,然后添加您期望的输出。给定代码的作用是什么?您尝试解决该问题的方法是什么?
 foreach($a as $key => &$val){
   ($val['invenid'] > 1) ? ($val['total_price'] = 12.00) : '';
 }