php 循环foreach时,数据格式不对报错

荆轲刺秦王

先看一下数据:

Array
(
    [0] => Array
        (
            [coupon_id] => 475
            [coupon_name] => 测试coupon_name
            [image_url] => xxx.jpg
            [total_count] => 10000
            [point_exchange] => 3000
            [begin_time] => 2020-10-19 14:51:00
            [end_time] => 2021-10-19 14:51:00
            [city_code] => all
            [member_level] => 001
            [activity_id] => 3
        )

    [1] => Array
        (
            [coupon_id] => 477
            [coupon_name] => 111111
            [image_url] => xxx.jpg
            [total_count] => 10000
            [point_exchange] => 3000
            [begin_time] => 2020-10-19 14:51:00
            [end_time] => 2021-10-19 14:51:00
            [city_code] => all
            [member_level] => 002
            [activity_id] => 3
        )

    [user_id] => 70
    [node_id] => 1001
)

数据中只有数组部分是需要的,而数组中的部分字段又是必填的,所以解决方法如下:

public function setActivityLevel( Request $request )
    {
        $input = array_txt_filter( $request-> all() );
        
        $pushParam = [];
        if( !empty( $input ) )
        {
            foreach ( $input as $key => $value )
            {
                if( is_array( $value ) )
                {
                    if( empty( $value['coupon_id'] ) || empty( $value['coupon_name'] ) || empty( $value['total_count'] )
                        || empty( $value['point_exchange'] ) || empty( $value['begin_time'] ) || empty( $value['end_time'] )
                        || empty( $value['city_code'] ) || empty( $value['member_level'] ) || empty( $value['activity_id'] )
                    ) S::error( 40001 );
                    array_push( $pushParam, $value );
                }
            }
        }
        $apiAccess = new ApiAccess();
        if ( !$apiAccess-> setUrl( config( 'api.mcenter.activity_set' )) ) S::error( 60004, '', $apiAccess-> getError());
        $res = $apiAccess-> push( $pushParam );
        if( isset( $res['code'] )) S::error( 60004 );
        return S::jsonReturn( $res );
    }

 

以上,解决问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值