Table des matières
回复讨论(解决方案)

合并数组

Jun 23, 2016 pm 01:15 PM
合并数组

 $A = array(        '1' => array(            'amount' => '100',            'amount1' =>'50',            'amount2' => '200',            'payment' => '12121212',            'payment1' => '12121212'        ),        '2' => array(            'amount' => '10',            'amount1' =>'5',            'amount2' => '20',            'payment' => '45454545',            'payment1' => '45454545'        )    );    $B = array(        '1' => array(            'user_money' => '100',            'user_money1' =>'50',            'user_money2' => '200'        ),        '2' => array(            'user_money' => '10',            'user_money1' =>'5',            'user_money2' => '20',            'user_money3' => '45454545'        )    );    foreach( $A as $k => $v){        foreach($B as $kk => $vv){            if($k = $kk){                $vvv[] = $v+$vv;            }        }    }    var_dump($vvv);
Copier après la connexion

我这样写得出来的这样
array (size=4)  0 =>     array (size=8)      'amount' => string '100' (length=3)      'amount1' => string '50' (length=2)      'amount2' => string '200' (length=3)      'payment' => string '12121212' (length=8)      'payment1' => string '12121212' (length=8)      'user_money' => string '100' (length=3)      'user_money1' => string '50' (length=2)      'user_money2' => string '200' (length=3)  1 =>     array (size=9)      'amount' => string '100' (length=3)      'amount1' => string '50' (length=2)      'amount2' => string '200' (length=3)      'payment' => string '12121212' (length=8)      'payment1' => string '12121212' (length=8)      'user_money' => string '10' (length=2)      'user_money1' => string '5' (length=1)      'user_money2' => string '20' (length=2)      'user_money3' => string '45454545' (length=8)  2 =>     array (size=8)      'amount' => string '10' (length=2)      'amount1' => string '5' (length=1)      'amount2' => string '20' (length=2)      'payment' => string '45454545' (length=8)      'payment1' => string '45454545' (length=8)      'user_money' => string '100' (length=3)      'user_money1' => string '50' (length=2)      'user_money2' => string '200' (length=3)  3 =>     array (size=9)      'amount' => string '10' (length=2)      'amount1' => string '5' (length=1)      'amount2' => string '20' (length=2)      'payment' => string '45454545' (length=8)      'payment1' => string '45454545' (length=8)      'user_money' => string '10' (length=2)      'user_money1' => string '5' (length=1)      'user_money2' => string '20' (length=2)      'user_money3' => string '45454545' (length=8)
Copier après la connexion

我想要的结果
$C = array( *      '1' => array(            'user_money' => '100',            'user_money1' =>'50',            'user_money2' => '200'            'amount' => '100',            'amount1' =>'50',            'amount2' => '200',            'payment' => '12121212',            'payment1' => '12121212'        ),        '2' => array(            'user_money' => '10',            'user_money1' =>'5',            'user_money2' => '20',            'user_money3' => '45454545'            'amount' => '10',            'amount1' =>'5',            'amount2' => '20',            'payment' => '45454545',            'payment1' => '45454545'        ) * );
Copier après la connexion


回复讨论(解决方案)

补充我的建名都是一样的。然后根据建名将值合并

    $A = array(        '1' => array(            'amount' => '100',            'amount1' =>'50',            'amount2' => '200',            'payment' => '12121212',            'payment1' => '12121212'        ),        '2' => array(            'amount' => '10',            'amount1' =>'5',            'amount2' => '20',            'payment' => '45454545',            'payment1' => '45454545'        )    );    $B = array(        '1' => array(            'user_money' => '100',            'user_money1' =>'50',            'user_money2' => '200'        ),        '2' => array(            'user_money' => '10',            'user_money1' =>'5',            'user_money2' => '20',            'user_money3' => '45454545'        )    );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
Copier après la connexion
Copier après la connexion
array (  0 =>   array (    'amount' => '100',    'amount1' => '50',    'amount2' => '200',    'payment' => '12121212',    'payment1' => '12121212',    'user_money' => '100',    'user_money1' => '50',    'user_money2' => '200',  ),  1 =>   array (    'amount' => '10',    'amount1' => '5',    'amount2' => '20',    'payment' => '45454545',    'payment1' => '45454545',    'user_money' => '10',    'user_money1' => '5',    'user_money2' => '20',    'user_money3' => '45454545',  ),)
Copier après la connexion
Copier après la connexion

    $A = array(        '1' => array(            'amount' => '100',            'amount1' =>'50',            'amount2' => '200',            'payment' => '12121212',            'payment1' => '12121212'        ),        '2' => array(            'amount' => '10',            'amount1' =>'5',            'amount2' => '20',            'payment' => '45454545',            'payment1' => '45454545'        )    );    $B = array(        '1' => array(            'user_money' => '100',            'user_money1' =>'50',            'user_money2' => '200'        ),        '2' => array(            'user_money' => '10',            'user_money1' =>'5',            'user_money2' => '20',            'user_money3' => '45454545'        )    );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
Copier après la connexion
Copier après la connexion
array (  0 =>   array (    'amount' => '100',    'amount1' => '50',    'amount2' => '200',    'payment' => '12121212',    'payment1' => '12121212',    'user_money' => '100',    'user_money1' => '50',    'user_money2' => '200',  ),  1 =>   array (    'amount' => '10',    'amount1' => '5',    'amount2' => '20',    'payment' => '45454545',    'payment1' => '45454545',    'user_money' => '10',    'user_money1' => '5',    'user_money2' => '20',    'user_money3' => '45454545',  ),)
Copier après la connexion
Copier après la connexion


版主 我想简单了。。。key不是11对应的。这种情况如何合并啊?
array (  16128 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16128',  ),  16127 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16127',  ),  16126 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16126',  ),  16125 =>   array (    'user_money' => '0.00',    'change_desc' => '订单 2016022647848 赠送的积分',    'user_id' => '16125',  ),  16124 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16124',  ),  16123 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16123',  ),  16122 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16122',  ),  16121 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16121',  ),  16120 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16120',  ),  16119 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16119',  ),  16118 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16118',  ),  16117 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16117',  ),  16116 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16116',  ),  16115 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16115',  ),  16114 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16114',  ),  16113 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16113',  ),  16112 =>   array (    'user_money' => '0.00',    'change_desc' => '注册送积分',    'user_id' => '16112',  ),  16111 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16111',  ),  16110 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16110',  ),  16109 =>   array (    'user_money' => '0.00',    'change_desc' => '',    'user_id' => '16109',  ),)
Copier après la connexion


B
array (  16127 =>   array (    'amount' => '1000.00',    'payment' => '储值卡号:16011118067599',    'user_id' => '16127',  ),  16110 =>   array (    'amount' => '1000.00',    'payment' => '储值卡号:16011128883958',    'user_id' => '16110',  ),  16102 =>   array (    'amount' => '1000.00',    'payment' => '储值卡号:16011125271413',    'user_id' => '16102',  ),  16077 =>   array (    'amount' => '500.00',    'payment' => '储值卡号:16011138443550',    'user_id' => '16077',  ),  16062 =>   array (    'amount' => '5.00',    'payment' => '储值卡号:15122274342772',    'user_id' => '16062',  ),  16048 =>   array (    'amount' => '500.00',    'payment' => '储值卡号:16011149520320',    'user_id' => '16048',  ),  16037 =>   array (    'amount' => '1000.00',    'payment' => '储值卡号:16011133169060',    'user_id' => '16037',  ),  16029 =>   array (    'amount' => '500.00',    'payment' => '储值卡号:16011127482943',    'user_id' => '16029',  ),  16006 =>   array (    'amount' => '500.00',    'payment' => '储值卡号:16011188176126',    'user_id' => '16006',  ),)
Copier après la connexion

有什么区别吗?
被来就是按键关联的
你 foreach($A as $k=>$v) $r[ $k] = $v + $B[$k]; 就可以看到

版主我的需求是这样的:我要将用户的消费信息与充值信息导出到excel中。应用到3个表,users、account_log、user_account表。
users表中只需要一个user_name字段,
account_log中需要change_desc,user_money,frozen_money。
user_account表中需要payment,amount 三个表的关联字段就是user_id。

users表数据user_id    user_name1                           ss2                           dd
Copier après la connexion

account_log表数据 ==》记录所有的充值、消费、退款记录user_id       user_money          frozen_money       change_desc1                           10                              0                               充值1                            20                              0                              充值1                            -40                             0                              消费2                            50                              0                              充值3                            50                              0                              充值
Copier après la connexion

user_account表   ==》   只记录充值记录user_id         amount                      payment1                        10                                 充值10卡号12321                         20                                充值20卡号53452                        50                                 充值50卡号34533                         50                             充值50卡号5585
Copier après la connexion

我当初的想法是,将user_account表的数据查出来为A将account_log数据查出为B,然后合并数组,最终想要
数组(0 => array(    'user_id' => '1',    'user_money' => '10'  ,      'user_money' => '20'  ,     'user_money' => '-40'  ,     'payment'=> ‘充值10卡号1232’,     ‘payment’ =>'充值20卡号5345'                ),1 => array(    'user_id' => '2',    'user_money' => '50'  ,     'payment'=>'充值50卡号3453'),2=>array(    'user_id' => '3',    'user_money' => '50'  ,     'payment'=>'充值50卡号5585'))
Copier après la connexion

我最终想要这样的数据,然后foreach数组,将它导出到excel。
但是我发现合并数组我合并不好。。。版主这种导出应该怎么弄?

数组的键是唯一的,你
0 => array(
    'user_id' => '1',
    ' user_money' => '10'  ,
      ' user_money' => '20'  ,
     'user_money' => '-40'  ,
     ' payment'=> ‘充值10卡号1232’,
     ‘ payment’ =>'充值20卡号5345'                
),
这样的数组,是不可能存在的

你可以改为三级数组啊
0 => array(
    'user_id' => '1',
    'user_money' =>array( '10',  '20'  , '-40'  ),
     'payment'=>array( ‘充值10卡号1232’,'充值20卡号5345' )   //这边对应user_money应该是3个值吧,        
),
1 => array(
    'user_id' => '2',
    'user_money' => '50'  ,
     'payment'=>'充值50卡号3453'
),
2=>array(
    'user_id' => '3',
    'user_money' => '50'  ,
     'payment'=>'充值50卡号5585'
)
然后依据原理合并就可以

 $a=array(  
            0 => array(
                 'user_id' => '1',
                 'user_money' =>array( '10',  '20', '-40' ),
                 'payment'=>array('充值10卡号1232','充值20卡号5345')   //这边对应user_money应该是3个值吧,
             ),
             1 => array(
                 'user_id' => '2',
                 'user_money' => '50',
                 'payment'=>'充值50卡号3453',
             ),
             2=>array(
                 'user_id' => '3',
                 'user_money' => '50',
                 'payment'=>'充值50卡号5585',
             )
        );
    $b=array_merge_recursive($a[0],$a[1]);
    $b=array_merge_recursive($b,$a[2]);
    var_dump($b);
得到结果
array(3) { ["user_id"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } ["user_money"]=> array(5) { [0]=> string(2) "10" [1]=> string(2) "20" [2]=> string(3) "-40" [3]=> string(2) "50" [4]=> string(2) "50" } ["payment"]=> array(4) { [0]=> string(18) "充值10卡号1232" [1]=> string(18) "充值20卡号5345" [2]=> string(18) "充值50卡号3453" [3]=> string(18) "充值50卡号5585" } } 

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment fusionner deux tableaux en langage C ? Comment fusionner deux tableaux en langage C ? Sep 10, 2023 am 09:05 AM

En prenant deux tableaux en entrée, essayez de fusionner ou de concaténer les deux tableaux et de stocker le résultat dans le troisième tableau. La logique de fusion de deux tableaux est la suivante : J=0,k=0for(i=0;i<o;i++){//mergingtwoarrays if(a[j]<=b[k]){ c[i] =a[j]; j++; }autre{ &nbs

Concaténer des tableaux à l'aide de la fonction concat en JavaScript Concaténer des tableaux à l'aide de la fonction concat en JavaScript Nov 18, 2023 pm 05:35 PM

En JavaScript, la fusion de tableaux est une opération courante et peut être réalisée à l'aide de la fonction concat. La fonction concat peut combiner plusieurs tableaux dans un nouveau tableau. Regardons un exemple de code spécifique. Tout d'abord, nous définissons plusieurs tableaux comme exemples de données : vararr1=[1,2,3]; vararr2=[4,5,6]; vararr3=[7,8,9];

Comment fusionner plusieurs tableaux en un seul tableau en fonction des noms de clés spécifiés en PHP Comment fusionner plusieurs tableaux en un seul tableau en fonction des noms de clés spécifiés en PHP Jul 07, 2023 pm 04:12 PM

Comment fusionner plusieurs tableaux en un seul tableau selon les noms de clés spécifiés en PHP Au cours du développement, nous rencontrons souvent le besoin de fusionner plusieurs tableaux en un seul tableau selon les noms de clés spécifiés. Ce besoin est très courant lorsque l’on travaille avec des données, en particulier lorsque l’on travaille avec des jeux de résultats de bases de données, par exemple. Cet article présentera plusieurs méthodes courantes pour réaliser cette fonction et donnera des exemples de code correspondants. Méthode 1 : Utiliser le parcours en boucle La méthode la plus simple consiste à utiliser une boucle pour parcourir tous les tableaux et ajouter les valeurs correspondantes au nouveau tableau en fonction du nom de clé spécifié. L'exemple de code est le suivant : fu

Comment fusionner deux tableaux PHP en un seul tableau Comment fusionner deux tableaux PHP en un seul tableau Sep 06, 2023 am 08:52 AM

Comment fusionner deux tableaux PHP en un seul tableau Dans le développement PHP, nous avons souvent besoin de fusionner deux tableaux en un seul tableau. Cette opération est très courante dans le traitement des données et les opérations sur les tableaux. Cet article explique comment fusionner deux tableaux de manière simple et efficace en utilisant PHP. PHP fournit deux fonctions pour fusionner des tableaux, à savoir array_merge() et array_merge_recursive(). Ci-dessous, nous présentons respectivement l'utilisation et l'exemple de code de ces deux fonctions. ar

Comment combiner des nombres bidimensionnels en php sans changer la valeur de la clé Comment combiner des nombres bidimensionnels en php sans changer la valeur de la clé Sep 30, 2021 pm 03:09 PM

En PHP, vous pouvez utiliser la fonction "array_merge_recursive()" pour fusionner des tableaux bidimensionnels sans modifier les valeurs de clé ; cette fonction n'écrasera pas le nom de clé lors de la gestion de la situation où deux ou plusieurs éléments du tableau ont le même nom de clé. au lieu de cela, plusieurs valeurs portant le même nom de clé sont formées de manière récursive dans un tableau.

Introduction à la fonction PHP—array_combine() : Combinez deux tableaux en un tableau associatif Introduction à la fonction PHP—array_combine() : Combinez deux tableaux en un tableau associatif Jul 24, 2023 am 08:33 AM

Introduction aux fonctions PHP — array_combine() : Combinez deux tableaux en un tableau associatif. En PHP, il existe de nombreuses fonctions pratiques qui peuvent nous aider à traiter et à exploiter des tableaux. Une fonction très utile est array_combine(). Cet article présentera l'utilisation de cette fonction et son exemple de code. La fonction array_combine() utilise la valeur d'un tableau comme nom de clé et la valeur d'un autre tableau comme valeur de clé pour fusionner les deux tableaux dans un nouveau tableau associatif. ce

Comment fusionner deux tableaux en PHP Comment fusionner deux tableaux en PHP Jul 07, 2023 am 09:57 AM

Comment fusionner deux tableaux en PHP En programmation PHP, vous rencontrez souvent des situations où vous devez fusionner deux tableaux. PHP fournit une variété de méthodes pour implémenter des opérations de fusion de tableaux. Cet article présentera plusieurs des méthodes courantes, avec des exemples de code. Méthode 1 : utiliser la fonction array_merge La fonction array_merge est une fonction intégrée fournie par PHP pour fusionner des tableaux. Il accepte plusieurs tableaux comme paramètres et renvoie un nouveau tableau fusionné. Ce qui suit est l'utilisation de la fonction array_merge pour fusionner deux

Comment fusionner plusieurs tableaux en PHP Comment fusionner plusieurs tableaux en PHP Jul 08, 2023 pm 02:42 PM

Comment fusionner plusieurs tableaux en PHP En PHP, les tableaux sont une structure de données très importante qui est souvent utilisée pour stocker et exploiter plusieurs éléments de données associés. Parfois, nous devons fusionner plusieurs tableaux en un seul pour traiter les données plus facilement. Cet article expliquera comment fusionner plusieurs tableaux en PHP et fournira des exemples de code. PHP fournit une variété de méthodes pour fusionner des tableaux. Nous présenterons ici trois méthodes courantes : utiliser l'opérateur "+", utiliser la fonction array_merge et utiliser array_m.

See all articles