Php 数组匹配&;向第一个数组添加值

Php 数组匹配&;向第一个数组添加值,php,arrays,Php,Arrays,我有两个数组,一个带有转换\提供\ id、转换和支付。现在我想将它与另一个数组进行匹配,并将第一个数组的所有值添加到第二个数组,如果没有,则将转换和支付值添加为0 数组1($conversions) 阵列2($clkcs) 我要达到的逻辑 foreach($clkcs as $k=>$key){ foreach($conversions as $ckey){ if($key['click_offer_id']==$ckey['conv

我有两个数组,一个带有转换\提供\ id、转换和支付。现在我想将它与另一个数组进行匹配,并将第一个数组的所有值添加到第二个数组,如果没有,则将转换和支付值添加为0

数组1($conversions)

阵列2($clkcs)

我要达到的逻辑

foreach($clkcs as $k=>$key){
            foreach($conversions as $ckey){
                if($key['click_offer_id']==$ckey['conversion_offer_id']){

                    $clkcs[$k]['offer_id']=$ckey['conversion_offer_id'];

                    $clkcs[$k]['conversions']=$ckey['conversions'];
                    $clkcs[$k]['payout']=$ckey['payout'];

                }else{
                    $clkcs[$k]['conversions']='0';
                    $clkcs[$k]['payout']='0';

                }
            }

        }
仅最后匹配值的转换和支付将被罚款。对其余的人来说是0

但它还应添加报价ID 90和196的转换和支付


我做错了什么?

每次foreach$clkcs时都会重新填充数组

所以,在下一次的第一次运行中为ID90设置了正确的对话之后,您再次为ID90设置了转换=0和支付=0

现在,您应该找到正确的方法:)


如果您想让它更快、更简单(并且conversion\u offer\u id是唯一的),请将其添加为$conversions[conversion\u offer\u id],并仅迭代一个数组。

每次处理$clkcs时,您都会重新填充数组

所以,在下一次的第一次运行中为ID90设置了正确的对话之后,您再次为ID90设置了转换=0和支付=0

现在,您应该找到正确的方法:)


如果您希望使其更快、更简单(并且转换\u offer\u id是唯一的),请将其添加为$conversions[conversion\u offer\u id],并仅迭代一个数组。

在成功填充$clkcs后,您需要每秒钟停止一次

foreach($clkcs as $k=>$key){
    $clkcs[$k]['conversions']='0';
    $clkcs[$k]['payout']='0';

    foreach($conversions as $ckey){
        if($key['click_offer_id']==$ckey['conversion_offer_id']){
            $clkcs[$k]['offer_id']=$ckey['conversion_offer_id'];

            $clkcs[$k]['conversions']=$ckey['conversions'];
            $clkcs[$k]['payout']=$ckey['payout'];

            break;
        }
    }
}

在成功填充$clkcs后,您需要停止第二次foreach

foreach($clkcs as $k=>$key){
    $clkcs[$k]['conversions']='0';
    $clkcs[$k]['payout']='0';

    foreach($conversions as $ckey){
        if($key['click_offer_id']==$ckey['conversion_offer_id']){
            $clkcs[$k]['offer_id']=$ckey['conversion_offer_id'];

            $clkcs[$k]['conversions']=$ckey['conversions'];
            $clkcs[$k]['payout']=$ckey['payout'];

            break;
        }
    }
}

Id取决于脚本需要什么。如果只有一个匹配是可能的,您可以通过检查“conversions”(转换)是否已设置(!=0)并不再重新计算来快速完成。Id取决于您的脚本需要什么。如果只有一个匹配是可能的,您可以通过检查“conversions”(转换)是否已设置(!=0)并不再重新计算来快速完成。
foreach($clkcs as $k=>$key){
    $clkcs[$k]['conversions']='0';
    $clkcs[$k]['payout']='0';

    foreach($conversions as $ckey){
        if($key['click_offer_id']==$ckey['conversion_offer_id']){
            $clkcs[$k]['offer_id']=$ckey['conversion_offer_id'];

            $clkcs[$k]['conversions']=$ckey['conversions'];
            $clkcs[$k]['payout']=$ckey['payout'];

            break;
        }
    }
}