首页 > 解决方案 > 多维数组,删除下一​​个数组中的重复数组

问题描述

我的数组结果是这样的

Array
(
    [0] => Array
        (
            [id] => Bank Transfer
            [ec] => 1000
            [accounts] => Array
                (
                    [0] => Array
                        (
                            [name] => Account WD
                            [value] => 
                        )

                    [1] => Array
                        (
                            [name] => Keterangan
                            [value] => 
                        )

                )

        )

    [1] => Array
        (
            [id] => Wired
            [ec] => 1001
            [accounts] => Array
                (
                    [0] => Array
                        (
                            [name] => Account WD
                            [value] => 
                        )

                    [1] => Array
                        (
                            [name] => Keterangan
                            [value] => 
                        )

                    [2] => Array
                        (
                            [name] => Account ID
                            [value] => 
                        )

                )

        )

)

这很奇怪,因为第二个帐户数组包含与第一个数组相同的值。

                    [0] => Array
                        (
                            [name] => Account WD
                            [value] => 
                        )

                    [1] => Array
                        (
                            [name] => Keterangan
                            [value] => 
                        )

如何防止这种重复,以便第二个帐户数组仅显示

                    [0] => Array
                        (
                            [name] => Account ID
                            [value] => 
                        )

这是我的代码

    $arr = $arr_pay = array();
      foreach($site_payment as $key => $value){
        if($value['status'] && $value['ec']>=1000){
          $payment_data_cust = unserialize(crypts($value['auto_wd_data'],'d'));
          foreach ($payment_data_cust as $ke => $va) {
            $arr[] = array("name"=>$va,"value"=>'');
          }
            $spc[] = array(
              "id"=>$value['id'],
              "ec"=>$value['ec'],
              "accounts"=>$arr
            );
        }
      }

$site_payment数组包含

[Bank Transfer] => Array
    (
        [id] => Bank Transfer
        [ec] => 1000
        [status] => 1
        [auto_wd_data] => IjZRcWp1aGtzNmZHbjVPZTlkeStGZVNPaWdPY0lrZ0UyQnd6eFhxQUZoR1VEeU82TzVJZkdMelJrZzJKS3lxXC9yTm5meFBndFRlUDQ9Ig==
    )
[Dana] => Array
    (
        [id] => Wired
        [ec] => 1001
        [status] => 1
        [auto_wd_data] => IkNDek9IY1BtelVEeFFxZEtMc0hvalBkbVBRdENEZEJWakZoaFBJWkNBUk09Ig==
    )

我想用不同的数组显示$site_paymentsauto_wd_data所以它变成了结果,但不是在每个数组中重复请帮我解决问题

标签: phparraysmultidimensional-array

解决方案


重复是由于 $arr 没有被重置

$arr_pay = array();
      foreach($site_payment as $key => $value){
        $arr = array(); // Resetting
        if($value['status'] && $value['ec']>=1000){
          $payment_data_cust = unserialize(crypts($value['auto_wd_data'],'d'));
          foreach ($payment_data_cust as $ke => $va) {
            $arr[] = array("name"=>$va,"value"=>'');
          }
            $spc[] = array(
              "id"=>$value['id'],
              "ec"=>$value['ec'],
              "accounts"=>$arr
            );
        }
      }

推荐阅读