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

标签 php mysql arrays foreach

我有一个数组(变量 $items),其中有相同的 invenid(多个)如何检查是否有多个 invenid 以及如何从每个现有数组中添加 Total_price 并创建一个新键折扣价。 这是我的数组: array ![数组][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

关于php - 如何检查键数组是否具有相同的值或多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57263386/

相关文章:

PHP 嵌套 While 循环不适用于 mysql_fetch_assoc

php - Javascript 函数未定义

java - 将主键作为外键映射到另一个表

php - 使用 UPDATE 限制数据库中的列

php - 比较数组 : one array is contained in the second array (key+value)

javascript - JS,将数组数据保存在 sessionStorage 中的问题

php - 使用 Homebrew 软件在 MAC 上安装 PHP 和 Postgresql

php - 如何在开始编写代码之前规划我的基于 Web 的项目?

mysql - LEFT JOIN 上的 MAX() 值

C# 将双数组传递给 C++ dll